override func preferredStatusBarStyle() -> UIStatusBarStyle { return UIStatusBarStyle.LightContent; }
在任何 ViewController 中使用上述代码将特定视图控制器的状态栏颜色设置为白色 对我来说在 iOS8 中不起作用 。有什么建议么?使用 UIApplication.sharedApplication 方法,在整个应用程序的 Info.plist 中进行所需更改后,颜色会发生变化。
// Change the colour of status bar from black to white UIApplication.sharedApplication().statusBarStyle = .LightContent
如何更改某些必需和 特定 ViewControllers 的状态栏颜色?
在阅读了所有建议并尝试了一些事情之后,我可以使用以下步骤使其适用于特定的视图控制器:
第一步:
打开你的 info.plist 并插入一个名为“ 查看基于控制器的状态栏外观 ”的新键到 NO
第二步(只是解释,不需要实现):
通常我们在 AppDelegate 的 application(_:didFinishLaunchingWithOptions:) 方法中放入如下代码,
斯威夫特 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
斯威夫特 3
UIApplication.shared.statusBarStyle = .lightContent
但这 会影响statusBarStyle所有 ViewControllers。
statusBarStyle
那么,如何使它适用于特定的 ViewController - 最后一步:
打开要更改的视图控制器文件,statusBarStyle然后将以下代码放入viewWillAppear(),
viewWillAppear()
此外,实现该viewWillDisappear()特定 viewController 的方法并放入以下代码行,
viewWillDisappear()
override func viewWillDisappear(animated: Bool) { super.viewWillDisappear(animated) UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default }
override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) UIApplication.shared.statusBarStyle = UIStatusBarStyle.default }
此步骤将首先更改statusBarStyle特定视图控制器的 ,然后将其更改回default特定视图控制器消失时。不执行viewWillDisappear()将statusBarStyle永久更改为新定义的值UIStatusBarStyle.LightContent
default
UIStatusBarStyle.LightContent