UINavigationController在swift 3中为零

时间:2017-06-19 21:13:40

标签: ios swift uinavigationcontroller storyboard

在我的主要故事板中,我有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的新手

enter image description here

2 个答案:

答案 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)