override func preferredStatusBarStyle() -> UIStatusBarStyle { return UIStatusBarStyle.LightContent; }
对我来说,在任何ViewController中使用以上代码将特定ViewController的statusBar颜色设置为White都 不起作用 。有什么建议?使用UIApplication.sharedApplication方法,颜色会在整个应用程序的Info.plist中进行必要的更改之后更改。
// Change the colour of status bar from black to white UIApplication.sharedApplication().statusBarStyle = .LightContent
如何仅更改某些必需的 特定ViewController 的状态栏颜色?
阅读所有建议并尝试了一些方法之后,我可以使用以下步骤将此方法用于特定的视图控制器:
第一步:
打开info.plist,然后将名为“ 基于视图控制器的状态栏外观 ” 的新密钥插入 NO。
第二步(仅作说明,无需实施):
通常,我们将以下代码放入AppDelegate的application(_:didFinishLaunchingWithOptions :)方法中,
迅捷2
UIApplication.sharedApplication().statusBarStyle = .LightContent
迅捷3
UIApplication.shared.statusBarStyle = .lightContent
但这 会影响statusBarStyle所有的ViewController。
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特定ViewController的,然后将其更改回default特定ViewController消失的时间。不执行viewWillDisappear()将statusBarStyle永久更改为的新定义值UIStatusBarStyle.LightContent
default
UIStatusBarStyle.LightContent