使用 preferredStatusBarStyle 设置状态栏颜色
iOS9之前,在plist文件中 插入一个新的key,名字为View controller-based status bar appearance,并将其值设置为NO。
然后敲入代码:
[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
虽然在iOS9之后仍然可以用,但是苹果不推荐了 ,
Use -[UIViewController preferredStatusBarStyle]"
一般我们都是将viewcontroller 嵌入到 uinavigationcontroller 中,如果将viewcontroller嵌入到uinavigationcontroller中,这时候状态栏的颜色控制将 交给uinavigationcontroller,
所以我们要自定义uinavigationcontroller(创建UINavigationController一个Category,在分类里重写),重写里面的方法
- (UIViewController *)childViewControllerForStatusBarStyle{
return self.visibleViewController;
}
- (UIViewController *)childViewControllerForStatusBarHidden{
return self.visibleViewController;
}
该类扩展的意思就是,你不要调用Container(NavigationController或者UITabBarController)的preferredStatusBarStyle这个方法,去调用self.visibleViewController
的preferredStatusBarStyle
,那么,我们写在UIViewcontroller里面的方法就会被调用了,就能更改StatusBar的前景颜色了。
意思就是 你调用我