Ios UINavigationController在swift 3中为零
在我的主故事板中,我有一个导航控制器和随后的swift文件NavigationCtr.swift viewController位于不同的xib中 现在我想从NavigationCtr类中推送我的viewControllerIos UINavigationController在swift 3中为零,ios,swift,uinavigationcontroller,storyboard,Ios,Swift,Uinavigationcontroller,Storyboard,在我的主故事板中,我有一个导航控制器和随后的swift文件NavigationCtr.swift viewController位于不同的xib中 现在我想从NavigationCtr类中推送我的viewController let vcFirst = FirstViewController(nibName: "FirstViewController", bundle: nil) self.navigationController!.pushViewController(vc
let vcFirst = FirstViewController(nibName: "FirstViewController", bundle: nil)
self.navigationController!.pushViewController(vcFirst, animated: true)
我有个例外
致命错误:在展开可选值时意外发现nil
所以当我尝试从viewDidLoad打印时
print(self.navigationController)
在NavigationCtr.swift类中,它给出零。所以什么都不管用
我在objective C中创建了一个新项目,效果很好。 附加了故事板图像 任何直接的暗示都将受到高度赞赏。 注意:-我是swift新手
对于第一个控制器,将其设置为
rootController
,而不是push(显示)
或设置其视图控制器
self.navigationController = UINavigationController()
navigationController.setViewControllers([vcfirst], animated: true)
主要问题是使用self.navigationController 因为我的故事板只有navigationController,所以我应该只使用self关键字。 如下
请在代码中显示如何从“NavigationCtr”推送ViewController。在图像中,它仅显示NavigationCtr ViewController,并设置为入口点。因此,看起来您并没有添加NavigationController。您需要选择ViewController,选择编辑->嵌入->导航控制器。我已经从情节提要中删除了ViewController并放置了navigationController。因此,我们的想法是,主故事板将只有navigationController,而ViewCtr将处于不同的XIB中。为什么故事板将只有navigationController?照@totiG说的做;在故事板中创建一个ViewController,选中它,然后单击编辑器->嵌入->导航控制器self.navigationCOntroller是一个只读属性@property(nullable,nonatomic,readonly,strong)UINavigationController*navigationCOntroller;是的,实际上,您不能这样设置导航控制器。
self.navigationController = UINavigationController()
navigationController.setViewControllers([vcfirst], animated: true)
let vcFirst = FirstViewController(nibName: "FirstViewController", bundle: nil)
self.pushViewController(vcFirst, animated: true)