[更新]适用于Xpre 10+和Swift 4.2+
这是iOS 7及更高版本的首选方法
在您的应用程序中
Info.plist,将设置
View controller-based status bar appearance为
YES。
在每个视图控制器中覆盖
preferredStatusBarStyle
(Apple文档)。例如:
override var preferredStatusBarStyle: UIStatusBarStyle {return .lightContent}如果
preferredStatusBarStyle根据视图控制器内部发生的更改返回了不同的首选状态栏样式(例如,滚动位置或显示的图像是否暗),那么您将需要
setNeedsStatusBarAppearanceUpdate()在状态更改时调用。
iOS 7之前的版本,不建议使用的方法
苹果已弃用此功能,因此将来会删除它。使用上述方法,以便在下一个iOS版本发布时不必重写它。
如果您的应用程序将支持在您的应用程序中
Info.plist,请设置
View controller-based status barappearance为
NO。
在
appDelegate.swift的
didFinishLaunchingWithOptions功能,加上:
UIApplication.shared.statusBarStyle = .lightContent
对于导航控制器
如果您使用导航控制器,并且希望使用每个视图控制器的首选状态栏样式并将其设置
View controller-based status barappearance为
YES应用程序的
info.plist
extension UINavigationController { open override var preferredStatusBarStyle: UIStatusBarStyle { return topViewController?.preferredStatusBarStyle ?? .default }}


