在特定视图中隐藏导航栏 - Swift 3

Que*_*int 6 uinavigationbar uinavigationcontroller ios swift3 xcode8.2

我有NavigationController处理我的应用程序导航.根据我的设计,第一个视图应该没有可见的NavigationBar.所有其他人之后,将会.

在这个FirstView中,我到目前为止使用它来隐藏ViewDidLoad中的NavBar:

self.navigationController?.isNavigationBarHidden = true
Run Code Online (Sandbox Code Playgroud)

从这个FirstView我可以访问其他视图.在这些其他视图中,我使用以下命令显示NavBar:

self.navigationController?.isNavigationBarHidden = false
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 当我从具有Visible NavBar的View导航回到带有Hidden NavBar的FirstView时,NavBar现在可见.基本上NavBar只隐藏了第一次然后显示我是否使用后退按钮.

我怎么能防止这个?

谢谢!

Egg*_*lad 7

将该代码移动到viewWillAppear()而不是viewDidLoad().

viewDidLoad()每个实例化的视图控制器只调用一次,而viewWillAppear()每当视图控制器即将在屏幕上显示时调用.

你可以阅读更多关于视图控制器生命周期这里.