我们如何在整个应用程序中设置iOS 9状态栏的Light内容风格?

我想将Light Content样式应用于整个应用程序。

以下方法在iOS 9中不推荐使用replace方法。

-setStatusBarStyle:animation:

设置状态栏的样式,可select将animation过渡到新样式。

AppDelegate工作就像:

Swift 1.2代码:

 UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true) 

但是当我将我的项目升级到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. 

所以根据从苹果论坛的解决scheme,从这个答案CGContextSaveGState:无效的上下文0x0仅在设备上的错误

所以,我已经根据解决scheme从info.plist文件中移除了属性UIViewControllerBasedStatusBarAppearance

现在的情况是, 我们如何在iOS 9中为整个应用程序设置状态栏的Light Content风格?

来自论坛:

在这里输入图像说明

我不想为每个视图设置轻量内容。

有什么build议么?

Objective-C应该有同样的问题。

通过使用UINavigationController并将其导航栏的barStyle设置为barStyle ,可以节省大量工作量。 你只需要做一次 你可以在故事板编辑器中做到这一点。

只要此UINavigationController处于命令状态,就会自动将状态栏的样式转换为.LightContent

你也可以使用:UIApplication.shared.statusBarStyle = .lightContent。 它也适用于swift3。