大部分首页或者搜索页面都会隐藏导航栏
隐藏导航栏页面 --> 有导航栏页面
但是,不知道大家有没有发现
隐藏导航栏页面 -> 有导航栏页面,如果是侧滑返回上一个页面(隐藏导航栏页面)
顶部的导航栏会黑或者各种不正常的现象。
总结了一套思路可以解决这个问题:
class ViewController: BaseViewController {
// 判断显示隐藏导航栏是否需要动画
var needAnimation: Bool = false
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// 下面两种方法其实有点区别的,有空可以琢磨一下
if needAnimation {
// 隐藏导航栏有动画
self.navigationController?.setNavigationBarHidden(true, animated: true)
} else {
// 隐藏导航栏没有动画
self.navigationController?.isNavigationBarHidden = true
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// 设置回初始值
needAnimation = false
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// 显示导航栏
self.navigationController?.setNavigationBarHidden(false, animated: true)
}
// 跳转到下一个页面
func viewToSecond() {
// 下一个页面返回当前页面,隐藏导航栏需要动画
needAnimation = true
let secondVC = self.storyboard?.instantiateViewController(withIdentifier: "SecondVC") as! SecondViewController
self.navigationController?.pushViewController(secondVC, animated: true)
}
}
有什么问题可以留言,最近在搞iOS,大家互相学习。
好好学习,天天向上。<( ̄oo, ̄)/