尝试隐藏导航栏时展开可选值时发现 nil
found nil while unwrapping an Optional value when try to hidden navigation bar
我有问题。我想让如果在第一个 table 视图上点击单元格,它将显示第二个视图控制器并且隐藏导航栏。然后我使用带有代码的按钮返回第一个视图控制器:
@IBAction func backButtonTapped(sender: AnyObject) {
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let VC: UIViewController = storyBoard.instantiateViewControllerWithIdentifier("restaurant")
self.presentViewController(VC, animated: true, completion: nil)
}
但打印出来
fatal error: unexpectedly found nil while unwrapping an Optional value
在第二个视图控制器中,我使用这个隐藏了导航栏:
func hiddenNavBar(){
self.navigationController!.navigationBar.hidden = true
}
并使用 :
在第一个视图控制器上再次显示导航栏
override func viewWillAppear(animated: Bool) {
createNavBar()
}
func createNavBar(){
self.navigationController!.navigationBar.hidden = false
}
我的主要故事板如下所示:
您返回上一个视图控制器的方式有误。
如果您使用导航视图控制器来推送第二个视图控制器,那么您需要使用弹出视图控制器
self.navigationController?.popViewControllerAnimated(true)
UINavigationViewController 是如何工作的?
它会创建一个堆栈来跟踪您推送的所有视图控制器,如果您想返回,只需在堆栈工作时从顶部弹出视图控制器即可。
写?代替 !在导航栏隐藏线。
像这样,
self.navigationController?.navigationBar.hidden = 真
我有问题。我想让如果在第一个 table 视图上点击单元格,它将显示第二个视图控制器并且隐藏导航栏。然后我使用带有代码的按钮返回第一个视图控制器:
@IBAction func backButtonTapped(sender: AnyObject) {
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let VC: UIViewController = storyBoard.instantiateViewControllerWithIdentifier("restaurant")
self.presentViewController(VC, animated: true, completion: nil)
}
但打印出来
fatal error: unexpectedly found nil while unwrapping an Optional value
在第二个视图控制器中,我使用这个隐藏了导航栏:
func hiddenNavBar(){
self.navigationController!.navigationBar.hidden = true
}
并使用 :
在第一个视图控制器上再次显示导航栏override func viewWillAppear(animated: Bool) {
createNavBar()
}
func createNavBar(){
self.navigationController!.navigationBar.hidden = false
}
我的主要故事板如下所示:
您返回上一个视图控制器的方式有误。
如果您使用导航视图控制器来推送第二个视图控制器,那么您需要使用弹出视图控制器
self.navigationController?.popViewControllerAnimated(true)
UINavigationViewController 是如何工作的? 它会创建一个堆栈来跟踪您推送的所有视图控制器,如果您想返回,只需在堆栈工作时从顶部弹出视图控制器即可。
写?代替 !在导航栏隐藏线。
像这样,
self.navigationController?.navigationBar.hidden = 真