在iOS8中使用Swift更改特定ViewController的状态栏颜色

override func preferredStatusBarStyle() -> UIStatusBarStyle {
 return UIStatusBarStyle.LightContent;
}

在任何ViewController中使用上述代码将statusBar颜色设置为白色为特定的viewcontroller不工作在iOS8为我。有什么建议么?使用UIApplication.sharedApplication方法,在整个应用程序的Info.plist中所需的更改后,颜色更改。

// Change the colour of status bar from black to white
UIApplication.sharedApplication().statusBarStyle = .LightContent

我如何才能对一些必需的和特定的ViewControllers的状态栏颜色进行更改?

在阅读所有的建议,并尝试了几件事情,我可以得到这个工作对于特定的视图控制器使用以下步骤:

第一步:

打开您的info.plist并插入一个名为“查看基于控制器的状态栏外观”的新键为NO

第二步(只是一个解释,不需要实现):

通常我们把下面的代码放在应用程序(_:didFinishLaunchingWithOptions 🙂
方法的AppDelegate,

UIApplication.sharedApplication().statusBarStyle = .LightContent

但是会影响所有ViewController的StatusBarStyle。

所以,如何让这个工作为特定的ViewControllers – 最后一步:

打开要更改StatusBarStyle的viewcontroller文件,并将以下代码放在viewDidLoad()中,

UIApplication.sharedApplication().statusBarStyle = .LightContent

另外,为特定的viewController实现viewWillDisappear()方法,并放入以下代码行,

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated)

    UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default

}

此步骤将首先更改特定viewController的statusBarStyle,然后在特定viewController消失时将其更改为默认值。不实现viewWillDisappear()会将StatusBarStyle永久更改为新定义的UIStatusBarStyle.LightContent值

http://stackoverflow.com/questions/26956728/changing-the-status-bar-color-for-specific-viewcontrollers-using-swift-in-ios8

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:在iOS8中使用Swift更改特定ViewController的状态栏颜色