我有两个viewcontrollers。第一个viewcontroller是集合视图控制器,我在self.navigationController?.hidesBarsOnSwipe = true
中设置了viewDidLoad()
。
当我从collectionView的可见单元格中推入第二个viewController
时,导航栏将显示在第二个viewController
中,但是如果我滚动collectionView单元格并在推入时不显示导航。
谁能告诉我问题是什么?
最佳答案
滚动是通过滑动手势完成的,因此会触发您的代码:
self.navigationController?.hidesBarsOnSwipe = true
因为导航控制器是在其顶部显示的所有视图控制器之间共享的,所以它的属性(如隐藏栏)保留了推入/弹出操作。
常见的模式是在覆盖的生命周期方法中更改其状态,例如:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.hidesBarsOnSwipe = false
self.navigationController?.setNavigationBarHidden(false, animated: true)
}
并在
viewWillDisappear
中还原这些状态关于ios - 推送到另一个ViewController时NavigationBar被隐藏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46300917/