阅读 84

iOS-如何优雅的隐藏主页面的导航栏,而只展示详细页面的导航栏(UINavigationBar)

现实开发中经常有这样的需求:

主页面是个图片,用户点击图片中某个按钮跳转页面,不希望主页面的导航栏碍事。

需求转化一下就是这样:

隐藏第一个页面的导航栏,展示第二个页面的导航栏,并且在导航过渡的时候展示顺畅的动画效果。

可能很多人会想到用navigationBar的isHidden属性:

或在第一页面对应的代码区域:

navigationController?.navigationBar.isHidden = true
复制代码

但运行后发现,第二个页面的导航栏也没有了。

目前为止发现的最优雅的做法:

在第一个页面的viewWillAppear和viewWillAppear生命周期函数里面各加上一句:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationController?.setNavigationBarHidden(true, animated: animated)
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    navigationController?.setNavigationBarHidden(false, animated: animated)
}
复制代码

效果:

广告时间:

大家如果正好想学iOS开发的话,可以来看看小弟的iOS视频教程(永久更新+售后辅导): m.cctalk.com/inst/s9vfhe…

关注下面的标签,发现更多相似文章
评论