今天有人群里問到了一個問題,當(dāng)從隱藏導(dǎo)航欄的界面跳轉(zhuǎn)到不隱藏導(dǎo)航欄的界面突勇,導(dǎo)航欄會閃一下,該如何解決坷虑?問題一出來甲馋,得到了很多人的相應(yīng),看來被這個問題阻擋的人挺多迄损,其實解決這個問題還是很簡單的定躏。
- 當(dāng)前控制器的導(dǎo)航欄(navigationController)隱藏的一般寫法。
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBarHidden = true
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.navigationBarHidden = false
}
- 上邊的這種寫法會導(dǎo)致在隱藏了導(dǎo)航欄的控制器和沒有隱藏導(dǎo)航欄的控制器之間切換時導(dǎo)航欄會出現(xiàn)閃動芹敌,改如何解決呢痊远?
我們只需要對上邊的代碼進(jìn)行稍許改動,就能解決這個問題氏捞。
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: true)
}