当我通过调用self.navigationController?.setNavigationBarHidden(true, animated: true)
唯一的问题是导航栏不会一直隐藏。
甚至更奇怪的是,如果我推送到新的VC并返回现在尝试滚动导航栏会一直隐藏,这就是我想要的。
如果重要的话,我隐藏了VC2上的导航栏,然后在我退回VC 1时显示它。
这是我第一次尝试隐藏导航栏时的样子,它不会一直向上/底层视图显示太多。
如果我推送到下一个VC并返回,现在尝试隐藏导航栏,它可以正常工作
我的观点有 0 约束到顶部布局所以它拥抱顶部
那么,当隐藏导航栏时,如何让我的视图总是像第二张图片一样?
答案 0 :(得分:1)
试试这段代码......
注意:这是解决您问题的简单方法。如果你想要更多的自定义外观导航条和状态栏外观。你应该阅读我以前的评论...
将导航控制器属性hidesBarsOnSwipe设置为true
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
navigationController?.hidesBarsOnSwipe = true
}
答案 1 :(得分:-1)
我理解你的问题。 第二个图像中的绿色部分不是导航栏,而是状态栏。 您可以隐藏状态栏,如下所示。
您应该在视图控制器上实现prefersStatusBarHidden:
在Swift 2中:
覆盖func prefersStatusBarHidden() - >布尔{ 返回true }
在Swift 3中:
覆盖var prefersStatusBarHidden:Bool { 返回true }