美文网首页
【iOS】隐藏导航栏侧拉时出现空白

【iOS】隐藏导航栏侧拉时出现空白

作者: 拔丝豌豆 | 来源:发表于2019-08-29 10:09 被阅读0次

    开发中,有时会遇到首页导航栏隐藏,二级页面需要显示导航栏的问题。

    直接设置NavigationBar的hidden属性会导致侧拉时导航条突然出现或者突然消失,首页导航位置出现空白。

    在需要隐藏的页面添加如下代码:

    override func viewWillAppear(_animated:Bool) {

            super.viewWillAppear(animated)

            self.navigationController?.setNavigationBarHidden(true, animated:true)

    }

    对应的,在需要显示的页面true改为false

    override func viewWillAppear(_animated:Bool) {

            super.viewWillAppear(animated)

            self.navigationController?.setNavigationBarHidden(false, animated:true)

    }

    animated必须为true,这是控制交互的必要参数,animated是侧拉动画。

    首页(导航隐藏效果) 二级页面(导航显示效果) 侧拉中的导航效果

    扩展:

    相邻两个页面导航栏状态不同时需要设置,如果 页面2 push到 页面3,且两个页面都不需要隐藏,页面3 就不必设置。

    该方法可以写在基类中,用 Bool 变量来控制显隐,默认 false,init 后给需要隐藏的页面设置为 true。如果现有项目已经写好,可以用runtime交换 viewWillAppear 实现。

    相关文章

      网友评论

          本文标题:【iOS】隐藏导航栏侧拉时出现空白

          本文链接:https://www.haomeiwen.com/subject/qymbectx.html