如何正确隐藏/显示navigationBar

时间:2016-03-15 14:14:11

标签: ios swift

我有一个带有一些viewControllers的应用程序。只有一个viewController不能显示navigationBar,因此在此控制器中我有:

override func viewWillAppear(animated: Bool) {
      self.navigationController?.setNavigationBarHidden(true,animated:true)
}

现在,我注意到这是一个全局设置,因为只要我访问另一个viewController导航栏就会被隐藏。

因此,在我viewController的每个viewWillAppear中,我都会再次显示它。

但是,这是要走的路吗?

2 个答案:

答案 0 :(得分:0)

您可以将navigationBar设置为隐藏在viewWillAppear中,并在此 one viewController的viewWillDisappear中显示为:

override func viewWillAppear(animated: Bool) {
  self.navigationController?.setNavigationBarHidden(true,animated:true)
}


override func viewWillDisappear(animated: Bool) {
  self.navigationController?.setNavigationBarHidden(false,animated:true)
}

答案 1 :(得分:0)

在你的UIViewController中,如果你正在使用UINavigationBar的引用插座,那么你可以通过隐藏的'来改变状态。属性,其中myNavigationBar是您定义的IBOutlet:

override func viewWillAppear(animated: Bool) {
    self.myNavigationBar.hidden = true
}

编辑:看到马克的回答,我很想知道该属性或功能是否是首选方式?