设置基于View控制器的状态栏外观= YES时,StatusBar不调用preferredStatusBarStyle

时间:2017-01-20 01:52:46

标签: ios swift statusbar

标题说明了一切。或者有一些非常错误的东西让我了解sdk,或苹果的sdk出了什么问题。

设置 (info.plist) 查看基于控制器的状态.. = YES时,我可以通过调用setNeedsStatusBarEtc隐藏我的状态栏动画等等...但是那么,我无法改变我的preferredStatusBarStyle。当我把它设置为NO时,我可以改变风格,但不能改变其他一切。我该怎么办?有什么不对?请帮忙!

基于控制器的状态.. = YES

所以在我的ViewController中我创建了一个statusBarHidden:Bool并覆盖类var:prefersStatusBarHidden:Bool,preferredStatusBarUpdateAnimation:Bool和preferredStatusBarStyle来改变我的statusBar。

var statusBarHidden = false {
    didSet {
        UIView.animate(withDuration: 0.3) { () -> Void in
            self.setNeedsStatusBarAppearanceUpdate()
        }
    }
}

但是,此代码将仅调用prefersStatusBarHidden和preferredStatusBarUpdateAnimation,而不是preferredStatusBarStyle。 Whit 基于控制器的状态.. = NO ,它被调用,但其他人不是。我只想在一些VC中隐藏一个lightContent StatusBar ..

已弃用的解决方案:

 UIApplication.shared.isStatusBarHidden = true

但不能动画(至少我不能)

感谢@WillBoland

1 个答案:

答案 0 :(得分:0)

按照this link,使用以下工作。

[[UIApplication sharedApplication] setStatusBarHidden:NO]

虽然已弃用。