【问题标题】:NavigationBar is hidden when push to another ViewController当推送到另一个 ViewController 时,NavigationBar 被隐藏
【发布时间】:2017-09-19 12:49:20
【问题描述】:

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

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

谁能告诉我问题出在哪里?

【问题讨论】:

  • 第二个视图控制器也是一个 CollectionView 控制器?
  • 只是普通的viewcontroller。
  • bz 你用过hidesBarsOnSwipe 所以如果你滚动它会隐藏

标签: ios swift uinavigationcontroller autolayout uinavigationbar


【解决方案1】:

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

self.navigationController?.hidesBarsOnSwipe = true

因为导航控制器在其上显示的所有视图控制器之间共享,所以它的属性(如隐藏栏)保留了推送/弹出。

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

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

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

并在viewWillDisappear中恢复这些状态

【讨论】:

    【解决方案2】:

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

    请参阅文档https://developer.apple.com/documentation/uikit/uinavigationcontroller/1621883-hidesbarsonswipe

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

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

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

    【讨论】:

      【解决方案3】:

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

      在第二个 View 控制器的 viewDidLoad 方法中添加以下代码。

      self.navigationController?.isNavigationBarHidden = false
      

      【讨论】:

        【解决方案4】:

        将这个self.navigationController?.hidesBarsOnSwipe = false 和这个self.navigationController?.setNavigationBarHidden(false, animated: true) 放在你的第二个视图控制器中。

        您可能希望在您的第一个视图控制器中将 self.navigationController?.hidesBarsOnSwipe = trueviewDidLoad 移动到 viewWillAppear

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-10-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-04
          • 1970-01-01
          • 2018-05-21
          相关资源
          最近更新 更多