Ios 推送到另一个ViewController时,导航栏将隐藏

Ios 推送到另一个ViewController时,导航栏将隐藏,ios,swift,uinavigationcontroller,autolayout,uinavigationbar,Ios,Swift,Uinavigationcontroller,Autolayout,Uinavigationbar,我有两个视图控制器。第一个视图控制器是集合视图控制器,我在viewDidLoad()中设置了self.navigationController?.hidesBarsOnSwipe=true 当我从collectionView的可见单元格中按下第二个viewController时,导航栏会显示在第二个viewController中,但如果我滚动collectionView单元格,并且按下时,导航栏不会显示 有人能告诉我问题出在哪里吗?不太了解您具体实现了什么,但请尝试在第二视图控制器中取消隐藏导航

我有两个视图控制器。第一个视图控制器是集合视图控制器,我在
viewDidLoad()
中设置了
self.navigationController?.hidesBarsOnSwipe=true

当我从collectionView的可见单元格中按下第二个
viewController
时,导航栏会显示在第二个
viewController
中,但如果我滚动collectionView单元格,并且按下时,导航栏不会显示


有人能告诉我问题出在哪里吗?

不太了解您具体实现了什么,但请尝试在第二视图控制器中取消隐藏导航栏

self.navigationController?.isNavigationBarHidden = false
在第二个视图控制器的viewDidLoad方法中添加以下代码

self.navigationController?.isNavigationBarHidden = false

不要深入了解您具体实现了什么,但请尝试在第二视图控制器中取消隐藏导航栏

self.navigationController?.isNavigationBarHidden = false
在第二个视图控制器的viewDidLoad方法中添加以下代码

self.navigationController?.isNavigationBarHidden = false

将此
self.navigationController?.hidesBarsOnSwipe=false
和此
self.navigationController?.setNavigationBarHidden(false,动画:true)
放在第二个视图控制器中

self.navigationController?.isNavigationBarHidden = false

您可能希望将您的
self.navigationController?.hidesBarsOnSwipe=true
viewDidLoad
移动到
视图将出现在您的第一个视图控制器中。

将此
self.navigationController?.hidesBarsOnSwipe=false
和此
self.navigationController?.setnavigationbar隐藏(假,动画:真)
在第二个视图控制器中

self.navigationController?.isNavigationBarHidden = false

您可能希望将您的
self.navigationController?.hidesBarsOnSwipe=true
viewDidLoad
移动到
视图将出现在您的第一个视图控制器中。

滚动是通过滑动手势完成的,因此它会触发您的代码:

self.navigationController?.isNavigationBarHidden = false
self.navigationController?.hidesBarsOnSwipe = true
因为导航控制器在其顶部显示的所有视图控制器之间共享,所以它的属性(如隐藏条)保留了推/弹出

常见模式是在覆盖的生命周期方法中更改其状态,例如:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

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

视图中恢复这些状态将消失

滚动是通过滑动手势完成的,因此它会触发您的代码:

self.navigationController?.hidesBarsOnSwipe = true
因为导航控制器在其顶部显示的所有视图控制器之间共享,所以它的属性(如隐藏条)保留了推/弹出

常见模式是在覆盖的生命周期方法中更改其状态,例如:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

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

当此属性设置为true时,向上滑动会隐藏导航栏和工具栏。向下滑动会再次显示这两个栏。如果工具栏没有任何项目,则即使在滑动后仍可见。此属性的默认值为false。(从apple获取)

见医生

这意味着当你向上滑动时,它将隐藏,向下滑动时,它将显示。这就是原因

要修复它,您可以向另一个控制器添加以下代码

[self.navigationController setNavigationBarHidden:NO animated:YES];

当此属性设置为true时,向上滑动会隐藏导航栏和工具栏。向下滑动会再次显示这两个栏。如果工具栏没有任何项目,则即使在滑动后,它仍然可见。此属性的默认值为false。(从apple获取)

见医生

这意味着当你向上滑动时,它将隐藏,向下滑动时,它将显示。这就是原因

要修复它,您可以向另一个控制器添加以下代码

[self.navigationController setNavigationBarHidden:NO animated:YES];

第二视图控制器也是CollectionView控制器?它只是普通的viewcontroller.bz是否使用了
hidesBarsOnSwipe
所以如果滚动它将隐藏第二视图控制器也是CollectionView控制器?它只是普通的viewcontroller.bz是否使用
hidesBarsOnSwipe
所以如果滚动它将隐藏