我正在使用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中提供使用的样式?
我想将Light Content样式应用于整个应用程序.
在没有替换方法的情况下,iOS 9中不推荐使用以下方法.
-setStatusBarStyle:动画:
设置状态栏的样式,可选择设置过渡到新样式的动画.
在以下工作AppDelegate:
Swift 1.2代码:
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
Run Code Online (Sandbox Code Playgroud)
但是当我将项目升级到iOS 9/Swift 2时,他们会给我一个警告信息:
<Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
<Error>: CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
<Error>: CGContextRestoreGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Run Code Online (Sandbox Code Playgroud)
因此,根据苹果论坛的解决方案和来自此答案的CGContextSaveGState:无效上下文0x0仅在设备上出错
因此,我已根据解决方案UIViewControllerBasedStatusBarAppearance从info.plist文件中删除了该属性.
现在情况是我们如何在iOS 9中为整个应用程序设置Status …