ios - 如何立即隐藏单个 View Controller 上的导航栏?

标签 ios swift uinavigationcontroller uinavigationbar

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

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)
}

我使用的是单个 Storyboard。有什么建议吗?

最佳答案

在 View 中会消失试试这个

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

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

关于ios - 如何立即隐藏单个 View Controller 上的导航栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46107256/

相关文章:

ios - 线程与加载飞溅同步

ios - 将自定义字体设置为粗体

iphone - 如何添加比 Xcode 中默认广告横幅更大的广告横幅?

ios - 在 Storyboard 中创建可重用的 View

swift - Swift 枚举中的默认参数

swift - 如何更改导航 Controller 标题

iOS核心数据一对多关系NSSET

ios - 无法在 Swift 中从 UILabel 复制文本

ios - 展开 Segue 不起作用 SWIFT

ios - 确认 UINavigationController 上的后退按钮