Swift UIApplication.setStatusBarStyle不起作用

cod*_*nja 4 ios uistatusbar swift ios8

这是我在子类中的实现UIViewController:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: false)
}
Run Code Online (Sandbox Code Playgroud)

我尝试将它放在AppDelegate初始化代码中(使用传入的UIApplication实例),但状态栏仍为黑色..

这是iOS 8的错误还是我做错了?

注意:我可能会通过讨论ios 8来破坏某人的法律.它是一个普遍的问题,当编译时也不适用于ios 7.

更新:仍然不起作用,即使Info.plist和代码中的值 - didFinishLaunchingWithOptions Nope仍然无法正常工作

dre*_*wag 10

你真的应该preferredStatusBarStyle在你的视图控制器上实现:

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return .LightContent
}
Run Code Online (Sandbox Code Playgroud)


nyc*_*nie 9

  1. 转到Info.plist文件
  2. 将鼠标悬停在其中一条线上,将显示一个(+)和( - )按钮.
  3. 单击加号按钮添加新密钥以大写字母V开头,自动第一个选择将是基于视图控制器的状态栏外观.
  4. 将其添加为KEY.
  5. 将VALUE设置为"NO"
  6. 转到AppDelegate.swift
  7. 在方法内添加以下代码
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool {
    application.setStatusBarStyle(UIStatusBarStyle.LightContent, animated: false)

    return true
}
Run Code Online (Sandbox Code Playgroud)
  1. DONE!运行您的应用程序,您的状态栏现在是白色!