[英]Hide Navigation Bar in Specific View - Swift 3
我有NavigationController處理我的應用程序導航。 根據我的設計,第一個視圖應該沒有可見的NavigationBar。 所有其他人之后,將會。
在這個FirstView中,我到目前為止使用它來隱藏ViewDidLoad中的NavBar:
self.navigationController?.isNavigationBarHidden = true
從這個FirstView我可以訪問其他視圖。 在這些其他視圖中,我使用以下命令顯示NavBar:
self.navigationController?.isNavigationBarHidden = false
我的問題是:
我怎么能防止這個?
謝謝!
將該代碼移動到viewWillAppear()
而不是viewDidLoad()
。
viewDidLoad()
僅在每個實例化的視圖控制器中調用一次,而每當視圖控制器即將在屏幕上顯示時,都會調用viewWillAppear()
。
您可以在此處閱讀有關視圖控制器生命周期的更多信息
在FirstViewController的viewWillAppear方法中寫下面的代碼。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated);
self.navigationController?.isNavigationBarHidden = true
}
並在你的SecondViewController的viewWillAppear方法中編寫下面的代碼
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated);
self.navigationController?.isNavigationBarHidden = false
}
不要試圖隱藏和顯示導航在viewWillAppear中和viewWillDisappear在FirstViewController酒吧subsequetly。
您可以使用此功能隱藏帶有炫酷動畫的NavigationBar:
func setupAnimationForNavigationBar(caseOfFunction: Bool) {
if caseOfFunction == true {
UIView.animate(withDuration: 0.5) {
self.navigationController?.navigationBar.transform = CGAffineTransform(translationX: 0, y: -200)
}
} else {
UIView.animate(withDuration: 0.5, animations: {
self.navigationController?.navigationBar.transform = CGAffineTransform.identity
})
}
}
如果要隱藏NavigationBar,請將其設置為“True”,如果要再次調用NavigationBar,請將其設置為“False”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.