iOS 隐藏导航栏和有导航栏页面跳转

大部分首页或者搜索页面都会隐藏导航栏

隐藏导航栏页面 --> 有导航栏页面

但是,不知道大家有没有发现

隐藏导航栏页面 -> 有导航栏页面,如果是侧滑返回上一个页面(隐藏导航栏页面)

顶部的导航栏会黑或者各种不正常的现象。

总结了一套思路可以解决这个问题:


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, ̄)/


Potato_zero.jpg

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 131,387评论 19 558
  • 我爱光 爱那血色 我想扑向野火 燃烧自己 冷风裹挟着暴雨袭来 它们怒吼着 嘲笑着 我的心已被火点燃 我不再彷徨犹豫...
    冰清玉洁2017阅读 45评论 0 0
  • 笔记本很久没用了,今天打开很是缓慢,于是开了360卫士,发现系统中有许多“垃圾文件”,正是这些“垃圾”使得电脑的速...
    云在波心阅读 650评论 0 1
  • 突然感叹,虽然现在天天祈祷他们健康长大,天天为他们神经紧张,很辛苦的感觉!可突然想到再等几年想像现在这样抱抱亲亲他...
    JessieFeng冯小洁阅读 61评论 0 0
  • 《你在瞅啥》--蓝风 村子里坑坑洼洼,娃儿们吱吱呱呱,一会呆看月儿,一会指着烈阳。 你问他路在何方,他牵着你手,活...
    蓝风_风子阅读 8评论 0 0