导航和更改导航栏可见性时出现奇怪的视图效果
Strange view effect when navigating and changing visibility of navigation bar
我有一个 UINavigationController
并且我希望它的根视图控制器隐藏导航栏,所以我在根视图控制器的 class:
中写了这个
override func viewWillLayoutSubviews() {
self.navigationController?.setNavigationBarHidden(true, animated: false)
}
这有效地隐藏了导航栏。这个根视图控制器有一个按钮,在点击时会推送一个新的视图控制器。我希望第二个视图控制器显示导航栏,所以在它的 subclass:
override func viewWillLayoutSubviews() {
self.navigationController?.setNavigationBarHidden(false, animated: false)
}
然后显示导航栏,但是当我点击它的后退按钮并导航回上一个视图控制器(我想隐藏导航栏的那个)时,它会在其视图顶部瞬间显示在导航栏应该出现的地方显示黑色 space,最后视图 "goes" 再次显示到屏幕顶部。
我怎样才能避免这种影响?
尝试在viewWillAppear中设置隐藏导航栏
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated);
self.navigationController?.setNavigationBarHidden(true, animated: false)
}
我有一个 UINavigationController
并且我希望它的根视图控制器隐藏导航栏,所以我在根视图控制器的 class:
override func viewWillLayoutSubviews() {
self.navigationController?.setNavigationBarHidden(true, animated: false)
}
这有效地隐藏了导航栏。这个根视图控制器有一个按钮,在点击时会推送一个新的视图控制器。我希望第二个视图控制器显示导航栏,所以在它的 subclass:
override func viewWillLayoutSubviews() {
self.navigationController?.setNavigationBarHidden(false, animated: false)
}
然后显示导航栏,但是当我点击它的后退按钮并导航回上一个视图控制器(我想隐藏导航栏的那个)时,它会在其视图顶部瞬间显示在导航栏应该出现的地方显示黑色 space,最后视图 "goes" 再次显示到屏幕顶部。
我怎样才能避免这种影响?
尝试在viewWillAppear中设置隐藏导航栏
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated);
self.navigationController?.setNavigationBarHidden(true, animated: false)
}