在iOS 7之前可以直接通过UIApplication对象来直接操作状态栏
[[UIApplication sharedApplication] setStatusBarStyle:style];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
但是在iOS 7之后,系统将状态栏交给Controller来管理,需要在Controller中实现以下方法来控制状态栏
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleDefault;
}
- (BOOL)prefersStatusBarHidden {
return YES;
}
但是通过Controller来管理状态栏毕竟不是很方便,不像通过UIApplication来管理更加自由不受约束,所以要想继续使用UIApplication来管理状态栏只要在info.plist中添加一个字段View controller-based status bar appearance并设置成NO即可。