iOS中修改狀態顏色在iOS9后官方廢棄了下面這種方法
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
//'setStatusBarStyle:' is deprecated: first deprecated in iOS 9.0 - Use -[UIViewController preferredStatusBarStyle]
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
iOS9以后使用下面這種方式來修改顏色
- (UIStatusBarStyle)preferredStatusBarStyle{
NSLog(@"go style");
return UIStatusBarStyleLightContent;
}
如果你的頁面有導航欄,則使用上面這這種方式將無法生效,針對有導航欄的,需要在baseNavigationController中加入重寫childViewControllerForStatusBarStyle方法
- (UIViewController *)childViewControllerForStatusBarStyle {
return self.topViewController;
}
然后在需要修改修改狀態欄顏色的controller中重寫preferredStatusBarStyle方法
-(UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent; // your own style
}
注意:重寫preferredStatusBarStyle修改狀態欄如果要生效,一定要在info.plist中配置View controller-based status bar appearance=YES
flutter中修改狀態欄顏色的方法:
配置全局白色狀態欄
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);
配置某個頁面狀態欄顏色
@override
Widget build(BuildContext context) {
return AnnotatedRegion<SystemUiOverlayStyle>(
value: SystemUiOverlayStyle.light,
child: Material(child:Scaffold(),),);
}
