我有一个UINavigationController
,我希望它的根视图控制器隐藏导航栏,所以我在根视图控制器的类中写了这个:
override func viewWillLayoutSubviews() {
self.navigationController?.setNavigationBarHidden(true, animated: false)
}
这有效地隐藏了导航栏。此根视图控制器有一个按钮,在按下时会按下新的视图控制器。我希望第二个视图控制器显示导航栏,所以在其子类中:
override func viewWillLayoutSubviews() {
self.navigationController?.setNavigationBarHidden(false, animated: false)
}
然后会显示导航栏,但是当我点击其后退按钮并导航回上一个视图控制器(我想要隐藏导航栏的那个)时,在其视图顶部的瞬间显示一个导航栏应该在的黑色空间,最后视图“再次”到屏幕顶部。
我怎么能避免这种影响?
答案 0 :(得分:1)
尝试在viewWillAppear中隐藏导航栏。
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated);
self.navigationController?.setNavigationBarHidden(true, animated: false)
}