ios - 观察 UINavigationController navigationBar 显示/隐藏

标签 ios swift uinavigationcontroller

我通过 storyboard 添加了一个 UINaviationController,其中包含选定的选项,例如 Hide Bars On Tap 等。我当时想知道对导航栏和工具栏显示/隐藏使用react的最佳解决方案是什么。我尝试覆盖 UINavigationController 和类似 setNavigationBarHidden(_ hidden: Bool, animated: Bool) 的方法,但是当您点击隐藏时不会调用它。我认为可能会观察到一些变量,但我不确定哪个变量以及它是否会起作用。

最佳答案

你可以试试

var ob:NSKeyValueObservation?

override func viewDidLoad() {
    super.viewDidLoad()

    ob = self.navigationController?.observe(\.navigationBar.isHidden, options: [.new], changeHandler: { (nav, ob) in
        print("ok")
    })
}

关于ios - 观察 UINavigationController navigationBar 显示/隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52485632/

相关文章:

ios - 尝试设置类标签属性时获取 Nil | UI表格 View

ios - 除了从适当的类继承外,还需要采取哪些额外步骤才能在 Xcode 中创建自定义表格单元格?

ios - 如何修复 NSInternalInconsistencyException?

iphone - 如何创建类似iPhone中的照片应用程序的界面?

ios - ScrollView 类 iOS

ios - 使用 Simperium 构建 iOS 应用程序时出现链接器错误

ios - 无法使用类型为 'Double' 的参数列表调用类型为 '(String?)' 的初始值设定项

ios - Swift:UIScrollView 不垂直滚动

android - 从 NavHost 迁移到 AnimatedNavHost

iPhone UINavigationBar 向上/向下移动