- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个具有以下结构的应用程序:
override func viewDidLoad() {
super.viewDidLoad()
// Get notified when app is resumed.
NotificationCenter.default.addObserver(self, selector: #selector(applicationDidBecomeActive), name: NSNotification.Name.UIApplicationDidBecomeActive, object: nil)
// Hide main navigation controller's top bar.
navigationController?.setNavigationBarHidden(true, animated: true)
}
override func viewWillDisappear(_ animated: Bool) {
// Show main navigation controller's top bar when leaving split view.
self.navigationController?.setNavigationBarHidden(false, animated: true)
super.viewWillDisappear(animated)
}
func applicationDidBecomeActive() {
// Hide main navigation controller's top bar after returning to app.
navigationController?.navigationBar.isHidden = true
}
只要我不离开应用程序,此功能就可以正常工作。 如果应用程序在显示嵌入式 View 时被关闭,则会发生以下情况:嵌入式导航栏仍然可见,但当我返回主视图时,其导航栏消失了。
在主场景中再次尝试取消隐藏它不会将其恢复。 如何显示导航栏?
顺便说一句,如果您想查看 previous question 中描述的更详细的设置。
<小时/>更新:这很奇怪。我找到了三种隐藏导航栏的方法,它们似乎在大多数情况下都能完成工作:
navigationController?.isNavigationBarHidden = true
navigationController?.setNavigationBarHidden(true,animated: false)
navigationController?.navigationBar.isHidden = true
最后一个是我用来确保该栏在应用程序恢复后保持隐藏状态的方法(请参阅上面的 applicationDidBecomeActive()
)。将其替换为其他两个选项中的任何一个即可消除该问题。它与嵌入式导航 Controller 无关。
我还不敢将此作为答案发布,因为我无法真正解释它。如果有人可以,我很乐意接受答案。
最佳答案
问题似乎是所有提到的三种方法都能够从 View 中隐藏导航栏,但第三个选项是设置与其他两个不同的属性。
因此,使用 navigationController?.navigationBar.isHidden = true
隐藏栏,然后尝试使用 self.navigationController?.setNavigationBarHidden(false,animated: true) 取消隐藏它
不起作用。无论哪种方式保持一致都可以解决问题。
关于ios - 应用程序暂停时主导航栏消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46303594/
在我生命的大部分时间里,我都在为 CPU 编程;尽管对于大多数算法来说,big-Oh 运行时间在 CPU/FPGA 上保持不变,但常数却大不相同(例如,大量 CPU 功率被浪费在数据洗牌上;而对于 F
我是一名优秀的程序员,十分优秀!