方案1:
1,在Info.plist中设置View controller-based status bar appearance为NO
2,修改状态栏的字体颜色为白色:
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
如果只修改某个ViewController,将上面的代码加到ViewDidLoad中
如果需要在全部View中都变色,将上面的代码加到AppDelegate中。
方案2:
1,在Info.plist中设置View controller-based status bar appearance为YES
2,在viewWillAppear中调用RefreshStatusBarStyle设置状态栏颜色
- (void)RefreshStatusBarStyle:(UIStatusBarStyle)barStyle {
NSLog(@"RefreshStatusBarStyle");
mStatusBarStyle = barStyle;
if (IOS_7) {
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
[self preferredStatusBarStyle];
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
}
}
else {
[UIApplication sharedApplication].statusBarStyle = barStyle;
}
}
- (UIStatusBarStyle)preferredStatusBarStyle {
NSLog(@"preferredStatusBarStyle :%@", [self class]);
return mStatusBarStyle;
}