iOS 8中用Swift为特定ViewControllers改变状态栏颜色

阅读了所有建议、尝试了一些方法之后,我总结出如下几步可以对特定的viewcontrollers有效:
第一步:
打开info.plist文件,插入一个新的键,叫做“View controller-based status bar appearance”设置为NO
第二步(只是解释,不需要实现):
一般情况下我们把下面的代码放到AppDelegate的application(_:didFinishLaunchingWithOptions:) 方法中,
UIApplication.sharedApplication().statusBarStyle = .LightContent

但这会影响所有ViewControllersStatusBarStyle。
所以,如何对特定ViewControllers有效-最后一步:
打开你想改变StatusBarStyle的viewcontroller文件,把下面的代码放到viewDidLoad()里,
UIApplication.sharedApplication().statusBarStyle = .LightContent

同样,在那个特定的viewController里实现viewWillDisappear()方法,放入下面的几行代码,

  super.viewWillDisappear(animated) 
  UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default
}```

这一步会首先改变特定的viewcontroller的statusBarStyle,然后在特定viewcontroller消失的时候改变回默认。不实现viewWillDisappear()会永久改变StatusBarStyle的值为新定义的UIStatusBarStyle.LightContent。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容