【发布时间】:2019-07-19 22:47:19
【问题描述】:
有时,navigationController?.pushViewController 方法在调试时不起作用。我的初始控制器(自我)已经有了导航控制器。但是,我们在输出屏幕中看不到任何错误日志。你有没有遇到过这个问题?可能是内存问题?
let controller = storyboard.instantiateViewController(withIdentifier: "MyViewController") as! MyViewController
self.navigationController?.pushViewController(controller, animated: true)
环境:iOS 12、Xcode 10.1
问候,
【问题讨论】:
-
取决于您在哪里执行此操作。你的 self.navigationController 在它不起作用的情况下是 nil 吗?
-
你在哪里运行这段代码?可以分享一下吗
-
在初始 ViewController 之前添加 NavigationController。它会起作用的。
-
尝试将代码移入
if let nav = self.navigationController {} else {//put some log}的 if 中,并在遇到问题时查看是否有任何日志。由于您在self.navigationController上使用选项检查?,因此当self.navigationController为nil 时不会发生推送,并且不会抛出错误或异常。 -
您是否在第一个控制器之前添加了导航控制器作为初始控制器?
标签: ios swift uinavigationcontroller pushviewcontroller