项目的infoPlist文件中有一项:View controller-based status bar appearance;
它的默认值就是NO,表示由系统管理状态栏。
此时在AppDelegate中添加如下代码:
[UIApplicationsharedApplication].statusBarStyle =UIStatusBarStyleLightContent;
这样就可以让状态栏中显示为亮色。
如果设置为YES,表示将StatusBar的控制权交给了各自的控制器;
在需要修改状态栏的控制器viewDidLoad中写上:
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
即可单独为本控制器修改状态栏。或者还有一种方式,ios很贴心的在UIViewController也增加了几个接口,
目的是让状态栏根据当前显示的UIViewController来定制statusBar的前景部分。
- (UIStatusBarStyle)preferredStatusBarStyle;
- (UIViewController *)childViewControllerForStatusBarStyle;
- (void)setNeedsStatusBarAppearanceUpdate
只需要在控制器中实现preferredStatusBarStyle方法,直接返回需要的状态栏设置就可以了。