以前我们为了能够实时的控制顶部statusbar的样式,可能会在喜欢使用
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
[[UIApplication sharedApplication]setStatusBarHidden:YES];
但是这么做之前需要将 info.plist 里面加上View controller-based status bar appearance BOOL值设为NO,就是把控制器控制状态栏的权限给禁了,用UIApplication来控制。但是这种做法在iOS9不建议使用了,建议我们把那个BOOL值设为YES,然后用控制器的方法来管理状态栏。
1.如果 rootViewController 为 viewController,在基类中重写下面的方法就可以了
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
2.如果 rootViewController 为 navigationController,有两种方式
第一种:
在 navigationController 所管理的 viewController 中写下面的代码
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
第二种:
为 navigationController 写一个分类,重写下面的方法
#import "UINavigationController+StatusBarStyle.h"
@implementation UINavigationController (StatusBarStyle)
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
@end