今天有人群里问到了一个问题,当从隐藏导航栏的界面跳转到不隐藏导航栏的界面,导航栏会闪一下,该如何解决?问题一出来,得到了很多人的相应,看来被这个问题阻挡的人挺多,其实解决这个问题还是很简单的。
- 当前控制器的导航栏(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
}
- 上边的这种写法会导致在隐藏了导航栏的控制器和没有隐藏导航栏的控制器之间切换时导航栏会出现闪动,改如何解决呢?
我们只需要对上边的代码进行稍许改动,就能解决这个问题。
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)
}