在最初为以前版本设计的 iOS7 中运行应用程序时,深灰色的导航栏会将文本为黑色的状态栏着色。
我正在尝试将其调整为最新版本,并将 UIApplication.statusBarStyle 设置为 UIStatusBarStyleLightContent ,如下所示:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
这段代码应该将状态栏文本颜色更改为白色,但事实并非如此。我在 UIApplication 实例的 _statusBarRequestedStyle 属性中放置了一个观察点,我可以看到在 viewWillAppear 和 viewDidAppear 方法的执行之间来自 UIApplicationMain 的一些调用将其设置为 0 (UIStatusBarStyleDefault)。
我无法弄清楚此时状态栏样式发生了什么/为什么会发生变化,如果您有同样的经历,我将不胜感激。
提前致谢!
编辑:来自 iOS 7 UI 转换指南(https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/Bars.html)
在 iOS 7 中,您可以从单个视图控制器控制状态栏的样式,并在应用程序运行时更改它。如果您希望退出此行为并使用 UIApplication statusBarStyle 方法设置状态栏样式,请将 UIViewControllerBasedStatusBarAppearance 键添加到应用程序的 Info.plist 文件中,并将其设置为 NO。