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

2018-05-24  本文已影响929人  欢乐的乐

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

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

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

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

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

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


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
上一篇下一篇

猜你喜欢

热点阅读