今天设置状态栏,发现之前使用的方法无效了,就查了不少资料才解决问题,发现在iOS9 之后UIApplication.shared.statusBarStyle = .lightContent
设无效
单独的设置下面的方法也无效
open override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
如果你的页面有导航栏的话,需要下面的几个方法配合使用,才会生效
- 1、一定要在
info.plist
中配置View controller-based status bar appearance=YES
- 2、需要在你的BaseNavigationController中加入重写的
childForStatusBarStyle
(swift), oc 的是childViewControllerForStatusBarStyle
// OC
- (UIViewController *)childViewControllerForStatusBarStyle {
return self.topViewController;
}
// swift
open override var childForStatusBarStyle: UIViewController? {
return self.topViewController
}
- 3、还是配合之前的状态栏设置方法
open override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
这样三步设置下来,你会发现状态栏设置已生效。