Swift

时间:2015-12-26 15:51:55

标签: ios swift uinavigationcontroller

我是一名新程序员。我有关于导航控制器的问题。出现了错误:

  

致命错误:在打开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

我也上传了截图

enter image description here

enter image description here

2 个答案:

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

您必须出示已安装了Home视图控制器的导航控制器。 在这里更改您的代码: enter image description here

enter image description here