首页 > 解决方案 > 观察 UINavigationController 导航栏显示/隐藏

问题描述

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

标签: iosswiftuinavigationcontroller

解决方案


你可以试试

var ob:NSKeyValueObservation?

override func viewDidLoad() {
    super.viewDidLoad()

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

推荐阅读