在我的主要故事板中,我有1个导航控制器和随后的快速文件NavigationCtr.swift。
viewController位于不同的xib。
现在我想从NavigationCtr类推送我的viewController。
let vcFirst = FirstViewController(nibName: "FirstViewController", bundle: nil)
self.navigationController!.pushViewController(vcFirst, animated: true)
我收到了异常
致命错误:在解包可选值时意外发现nil
所以当我尝试从viewDidLoad
打印时 print(self.navigationController)
在NavigationCtr.swift类中,它给出了nil。没有任何作用
我在目标C中创建了一个新项目,它运行正常。 附上故事板图片 任何直接方向的提示都受到高度赞赏。 注意: - 我是swift的新手
答案 0 :(得分:1)
主要问题是使用self.navigationController
由于我的故事板只有导航控制器,我应该只使用自己的关键字。 如下
let vcFirst = FirstViewController(nibName: "FirstViewController", bundle: nil)
self.pushViewController(vcFirst, animated: true)
答案 1 :(得分:-3)
对于第一个控制器,将其设置为rootController
而不是推(显示)。
self.navigationController = UINavigationController(rootViewController: vcFirst)
或设置其视图控制器
self.navigationController = UINavigationController()
navigationController.setViewControllers([vcfirst], animated: true)