【发布时间】:2017-01-27 14:12:56
【问题描述】:
有没有办法在启用UIViewControllerBasedStatusBarAppearance 的同时设置默认状态栏样式?
这是我正在处理的问题:
几乎整个应用都需要使用UIStatusBarStyle.LightContent,因为导航栏的背景是深色的。原来UIViewControllerBasedStatusBarAppearance是禁用的,在Info.plist中设置了如下的while文本状态栏:
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
这工作得很好,直到我发现这个 .LightContent 状态栏甚至对于某些共享扩展程序(如 Facebook Messenger)也会显示,导致它不可读:
这可以通过使用UIViewControllerBasedStatusBarAppearance 来解决,但是我需要将以下方法添加到我想避免的所有视图控制器中,因为应用程序非常大。
此外,对于应用程序中具有浅色导航栏背景的一个屏幕,我使用 UIApplication.sharedApplication().setStatusBarStyle() 切换到深色导航栏,但这种方法在 iOS 9 中已弃用。
任何想法如何解决这个问题?晕眩?
【问题讨论】:
-
我做了一个解决方法并使用这行代码来更新状态栏颜色:`self.navigationController?.navigationBar.barStyle = UIBarStyle.black` 你想将它设置为
UIBarStyle.default我想 -
我想到的一个可能的解决方法(未测试)是,不是将该方法添加到所有视图控制器,而是为 ViewController 类编写一个包含该方法的扩展。
标签: ios uiappearance ios7-statusbar