我是一名新程序员。我有关于导航控制器的问题。出现了错误:
致命错误:在打开Optional时意外发现nil 值
我的导航代码(出错):
let color: UIColor = UIColor(red: 24.0 / 255, green: 75.0 / 255, blue: 152.0 / 255, alpha: 1)
self.navigationController!.navigationBar.translucent = false
self.navigationController!.navigationBar.tintColor = UIColor.whiteColor()
self.navigationController!.navigationBar.barTintColor = color
self.navigationController!.navigationBar.barStyle = .BlackTranslucent
我也上传了截图
答案 0 :(得分:1)
从Interface Builder中选择viewController,然后单击output
。您似乎没有将场景嵌入导航控制器中。
答案 1 :(得分:1)
错误说明,您的导航控制器为零。这意味着,您的视图控制器没有连接任何导航控制器。
您可以通过编程方式或简单地添加导航控制器,也可以转到Xcode中的editor-> embed in -> navigation controller
注意:强>
如果您通过代码呈现视图控制器,请确保向视图控制器提供导航控制器。
因此,在您的情况下,此代码显示没有导航控制器的Home视图控制器。即使您的故事板具有导航控制器,它也将为零,因为您只通过代码呈现HomeView控制器:
let storyboard = UIStoryboard(name: "Home", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("HomeVC")
self.presentViewController(vc, animated: true, completion: nil)
必须是:
let storyboard = UIStoryboard(name: "Home", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("HomeVCNavigation") //storyboard ID for the navigation controller HomeVCNavigation
self.presentViewController(vc, animated: true, completion: nil)
OR
试试这个:
let VC1 = self.storyboard!.instantiateViewControllerWithIdentifier("HomeVC") as! ViewController
let navController = UINavigationController(rootViewController: VC1) // Creating a navigation controller with VC1 at the root of the navigation stack.
self.presentViewController(navController, animated:true, completion: nil)