要在视图控制器上动态更新UIStatusBarStyle,请使用此方法:
这也将删除已弃用的警告
'setStatusBarStyle:'已弃用:首次在iOS 9.0中废弃-请使用-[UIViewController preferredStatusBarStyle]
调用时使用。
[[UIApplication sharedApplication] setStatusBarStyle:style]
让我们开始吧
Objective-C
定义UtilityFunction
+(void)setStatusBarStyle:(UIStatusBarStyle )style {
[[NSUserDefaults standardUserDefaults] setInteger:style forKey:@"UIStatusBarStyle"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
在你的
BaseViewController中重写此方法。
- (UIStatusBarStyle)preferredStatusBarStyle {
UIStatusBarStyle style = [[NSUserDefaults standardUserDefaults] integerForKey:@"UIStatusBarStyle"];
return style;
}
使用以下的UtilityFunction为AnyViewController设置UIStatusBarStyle值:
[UtilityFunctions setStatusBarStyle:UIStatusBarStyleDefault]
// call below code for preferred style
[self preferredStatusBarStyle]
Swift 4.0
定义UtilityFunction函数
class func setPreferedStyle(style:UIStatusBarStyle)->Void {
UserDefaults.standard.set(style, forKey: "UIStatusBarStyle")
UserDefaults.standard.synchronize()
}
在您的BaseViewController中重写此方法。
override var preferredStatusBarStyle: UIStatusBarStyle {
if let style: UIStatusBarStyle = UIStatusBarStyle(rawValue:UserDefaults.standard.integer(forKey: "UIStatusBarStyle")) {
return style
}
return UIStatusBarStyle.lightContent
}
使用类似下面这样的UtilityFunction设置UIStatusBarStyle值,以适用于AnyViewController:
Utility.setPreferedStyle(style: .lightContent)
// call below code for preferred style
preferredStatusBarStyle()
BaseViewController
超类,在那里我设置了这个样式。 - user1744056UINavigationController
,那么这里是答案:https://dev59.com/UVwY5IYBdhLWcg3wWWm0 - Ashish Kakkad