在启用UIViewControllerBasedStatusBarAppearance
的情况下如何设置默认状态栏样式?
这是我正在处理的问题:
几乎整个应用程序需要使用UIStatusBarStyle.LightContent
作为导航栏具有深色背景。最初,UIViewControllerBasedStatusBarAppearance
被禁用,以下内容在Info.plist
中设置为白色文本状态栏:
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
这一切都很顺利,直到我发现即使在Facebook Messenger等一些共享扩展中也显示了.LightContent
状态栏,导致其不可读:
可以通过使用UIViewControllerBasedStatusBarAppearance
来解决此问题,但这样我需要将以下方法添加到所有想避免的视图控制器中,因为应用程序相当大。
而且,对于应用程序中具有浅色导航栏背景的一个屏幕,我会使用UIApplication.sharedApplication().setStatusBarStyle()
切换到深色导航栏,但是这个方法在iOS 9中已经被弃用了。
有什么想法可以解决这个问题吗?使用Swizzling吗?
self.navigationController?.navigationBar.barStyle = UIBarStyle.black
,如果您想将其设置为UIBarStyle.default
。 - MSU_Bulldog