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 |