如何立即隐藏单个视图控制器上的导航栏?

时间:2017-09-08 01:20:51

标签: ios swift uinavigationcontroller uinavigationbar

我有一个带有两个视图控制器的应用程序和一个位于屏幕顶部的图像。我只是没有问题地隐藏了第一个(主)视图控制器上的导航栏,但是使用第二个视图控制器中的“后退”按钮会导致我的图像在隐藏导航栏时短暂下拉。如果可能的话,我想返回第一个屏幕而不会移动图像。我用来隐藏导航栏的代码如下:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.setNavigationBarHidden(true, animated: false)
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    self.navigationController?.setNavigationBarHidden(false, animated: true)
}

我正在使用单个故事板。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

在视图中将消失尝试此

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    self.navigationController?.setNavigationBarHidden(false, animated: false)
}

隐藏取消隐藏导航栏时删除动画。