Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift UIApplication.setStatusBarStyle不';行不通_Ios_Swift_Ios8_Uistatusbar - Fatal编程技术网

Ios Swift UIApplication.setStatusBarStyle不';行不通

Ios Swift UIApplication.setStatusBarStyle不';行不通,ios,swift,ios8,uistatusbar,Ios,Swift,Ios8,Uistatusbar,下面是我在UIViewController子类中的实现: override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: false) } 我尝试将其放入AppDelegate初始化代码中(使用传入的UI

下面是我在
UIViewController
子类中的实现:

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: false)
}
我尝试将其放入AppDelegate初始化代码中(使用传入的UIApplication实例),但状态栏仍然为黑色

这是iOS 8的bug还是我做错了

注意:我讨论ios 8可能违反了某人的法律。。这是一个普遍的问题,当编译时,iOS7也不能工作

更新:即使Info.plist中有值,而
中有代码,仍然不起作用-didfishlaunchingwithoptions

您确实应该在视图控制器上实现
preferredStatusBarStyle

  • 转到Info.plist文件
  • 将光标悬停在其中一行上,然后选择(+)和(-) 按钮将显示
  • 单击加号按钮添加新的密钥类型 从大写字母V开始,第一个选项将自动显示为查看 基于控制器的状态栏外观
  • 加上那个作为钥匙
  • 将该值设置为“否”
  • 去找你AppDelegate.swift
  • 在方法内部添加以下代码
  • 完成!运行你的应用程序,你的状态栏现在是白色的

  • 在设置(
    info.plist
    )中添加
    查看基于控制器的状态栏外观
    ,并将其设置为
    false
    @JackWu添加到
    info.plist
    ,但设置后没有目标,请尝试调用
    UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent,动画:false)
    在应用程序代理的
    ApplicationIDLoad
    中。它应该可以工作…@JackWu-Hmmmmm,仍然不能工作:/@drewag我不想隐藏状态栏,但将其颜色从
    暗->亮-
    好。不过,我是通过这些评论才弄明白的。这两个答案都是正确的(当前接受的答案+此答案)。UIApplication的“setStatusBarStyle”方法在iOS 9中已被弃用。覆盖“preferredStatusBarStyle”似乎是更改状态栏文本颜色的首选方法。
    override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return .LightContent
    }
    
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool {
        application.setStatusBarStyle(UIStatusBarStyle.LightContent, animated: false)
    
        return true
    }