设置statusbarStyle(在iOS 9.0中已弃用)

刚刚下载了新的xCode 10.0,并且发现自iOS 9.0以来旧的statusBarStyle已被弃用。

警告: Setter for 'statusBarStyle' was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle]

不推荐使用的代码: UIApplication.shared.statusBarStyle = .default

我尝试使用self.preferredStatusBarStyle ,但发现该属性只是一个getter。 所以任何人都知道如何设置statusBarStyle

编辑

我想在一个函数中更改statusBarStyle,用户可以在不同的主题之间切换。 例如:

 func changeStatusBar(toDarkMode: Bool) { if toDarkMode { // Set to light statusBarStyle } else { // Set to default } } 

使用您现在使用的相同代码设置darkMode变量,然后在系统期望的计算变量中使用它:

 var darkMode = false override var preferredStatusBarStyle : UIStatusBarStyle { return darkMode ? .default : .lightContent } 

根据上下文,您可能需要强制刷新屏幕才能使其生效。 您可以通过以下调用执行此操作:

 setNeedsStatusBarAppearanceUpdate() 

swift4中 ,您可以在ViewController中的viewDidLoad()下使用此代码块 –

 override var preferredStatusBarStyle : UIStatusBarStyle { return .lightContent }