statusBarStyle设置问题
在一些支持iOS6、iOS7的项目中,转换statusBarStyle的方法:
方法一
info.plist文件中添加:View controller-based status bar appearance为NO;
在viewController中实现:
1
2
3
4-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}ViewController的
viewDidLoad中增加调用:1
[self setNeedsStatusBarAppearanceUpdate];
Note:这种方法在有navigationController的时候不奏效。
方法二
UINavigationController并不会转发preferredStatusBarStyle方法给它的childViewControllers,而是在屏幕顶层自己管理statusBar的状态。所以在navigationContrller的childViewController中实现preferredStatusBarStyle并不奏效。
修改方法:
1 | self.navigationController.navigationBar.barStyle = UIBarStyleBlack; |
方法三
在AppDelegate的didFinishLaunchingWithOptions方法里添加:
1 | [[UINavigationBar appearance] setBarStyle:UIBarStyleBlack]; |
方法四
给UINavigationController增加一个category:
在category中实现方法:
1 | - (UIStatusBarStyle)preferredStatusBarStyle |