Yar*_*sim 12
在UIViewController上覆盖以下方法:
extension MyViewController {
override func prefersStatusBarHidden() -> Bool {
return barsHidden // this is a custom property
}
// Override only if you want a different animation than the default
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
return .slide
}
}
Run Code Online (Sandbox Code Playgroud)
barsHidden在代码中的某处更新并调用
setNeedsStatusBarAppearanceUpdate()
我的回答基于这篇文章的一些评论,这些评论都是猜测。我不确定这是否有效,因为苹果没有为我们提供任何导航栏隐藏时的直接方法或委托方法。
将 UINavigationBar 子类化为 NavigationBar。将属性观察器添加到其hidden属性,如下所示:
var hidden: Bool{
didSet{
UIApplication.sharedApplication().setStatusBarHidden(self.hidden, animation: .Slide)
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您需要转到viewDidLoad主视图控制器中的方法,并将self.navigationBar属性(或self.navigationController.navigationBar,不确定是哪一个)设置为新的 NavigationBar 类的实例。
请注意,我现在无法对此进行测试,请让我知道它如何/是否有效。
| 归档时间: |
|
| 查看次数: |
9503 次 |
| 最近记录: |