Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UINavigationController在swift 3中为零_Ios_Swift_Uinavigationcontroller_Storyboard - Fatal编程技术网

Ios UINavigationController在swift 3中为零

Ios 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

在我的主故事板中,我有一个导航控制器和随后的swift文件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类中,它给出零。所以什么都不管用


我在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)