Swift UIApplication.setStatusBarStyle不起作用

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

 override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: false) } 

我试图把它放在AppDelegate的初始化代码(使用在UIApplication实例中传递),但是状态栏仍然是黑色的..

这是一个与iOS 8的错误,或者我做错了吗?

注:我可能会在这里通过讨论ios 8打破别人的法律。它的一个普遍的问题是,编译时也不适用于ios 7。

更新:即使在Info.plist中的值和代码在- didFinishLaunchingWithOptions仍然不起作用 不,还是不行

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

 override func preferredStatusBarStyle() -> UIStatusBarStyle { return .LightContent } 
  1. 转到Info.plist文件
  2. 将鼠标hover在其中一行上,将显示(+)和( – )button。
  3. 点击加号button,以大写字母V开始添加新的键入types,并自动select第一个选项为基于视图控制器的状态栏外观
  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 } 
  1. DONE! 运行你的应用程序,你的状态栏现在是白色!