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