在阅读了所有建议并尝试了一些事情之后,我可以使用以下步骤使其适用于特定的视图控制器:
第一步:
打开您的 info.plist 并将一个名为“查看基于控制器的状态栏外观”的新键插入到否
第二步(只是解释,不需要实现):
通常我们将以下代码放在应用程序中(_:didFinishLaunchingWithOptions:)
AppDelegate 的方法,
斯威夫特 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Swift 3
UIApplication.shared.statusBarStyle = .lightContent
但这会影响所有 ViewController 的 statusBarStyle。
那么,如何让它为特定的 ViewControllers 工作 - 最后一步:
打开要更改statusBarStyle的viewcontroller文件,将以下代码放入viewWillAppear(),
斯威夫特 2
UIApplication.sharedApplication().statusBarStyle = .LightContent
Swift 3
UIApplication.shared.statusBarStyle = .lightContent
另外,为特定的 viewController 实现 viewWillDisappear() 方法并放入以下代码行,
斯威夫特 2
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default
}
Swift 3
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.shared.statusBarStyle = UIStatusBarStyle.default
}
此步骤将首先更改特定视图控制器的statusBarStyle,然后在特定视图控制器消失时将其更改回default。不实现viewWillDisappear() 会将statusBarStyle 永久更改为UIStatusBarStyle.LightContent 的新定义值