app状态栏样式
- 状态栏字体是黑色,背景色为透明 : UIStatusBarStyleDefault
- 状态栏字体是白色,背景色是透明 : UIStatusBarStyleLightContent
设置方法
1.iOS 9之前
在工程的info.plist文件中设置View controller-based status bar appearance为NO,默认为YES。
状态栏字体是白色
// default is UIStatusBarStyleDefault
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent
黑色同理。
iOS 9之后
无需设置View controller-based status bar appearance的属性,当你设置为NO时以下方法不执行。
- (UIStatusBarStyle)preferredStatusBarStyle;
- (UIViewController *)childViewControllerForStatusBarStyle;
- (void)setNeedsStatusBarAppearanceUpdate
1.在VC中重写VC的preferredStatusBarStyle方法
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleDefault;
}
但是当你所在的VC是在NAV中,在viewDidLoad中调用[self setNeedsStausBarAppearanceUpdate]时,VC中的preferredStatusBarStyle不会被调用,而是直接盗用NAV中的preferredStatusBarStyle方法了。
所以你可以直接调用
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
或者在NAV中重写preferredStatusBarStyle方法。