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