我正在使用Xcode 8.0 beta 4.
在以前的版本中,UIViewController具有设置状态栏样式的方法
public func preferredStatusBarStyle() -> UIStatusBarStyle
Run Code Online (Sandbox Code Playgroud)
但是,我发现它在Swift 3中改为"Get ONLY varaiable".
public var preferredStatusBarStyle: UIStatusBarStyle { get }
Run Code Online (Sandbox Code Playgroud)
如何在我的UIViewController中提供使用的样式?
我想改变状态栏的颜色之间.lightContent和.default动态(因为我的背景可以在同一个视图控制器改变).
我试图为此创建一个看起来像这样的函数:
func changeStatusBar(useDefault: Bool) {
if useDefault {
var preferredStatusBarStyle: UIStatusBarStyle {
return .default
}
} else {
var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
setNeedsStatusBarAppearanceUpdate()
}
Run Code Online (Sandbox Code Playgroud)
但没有运气.我在网上找到的每个指南(或者在Stackoverflow上)都只显示了如何更改statusBar,而不是通过函数打开和关闭.
我也设置View controller-based status bar appearance到NO了在info.plist文件中.
我以前使用的UIApplication.shared.statusBarStyle = .lightContent那条线是- 但是因为自iOS9以来不推荐使用它,所以我再也不能使用它了.
任何人都知道如何动态更改它?