- 通过info.plist设置默认
在 Info.plist 里增加一行 UIStatusBarStyle( Status bar style 也可以),这里可以设置两个值,就是上面提到那两个 UIStatusBarStyleDefault 和 UIStatusBarStyleLightContent 。
- 通过statusBarStyle方法来动态设置状态栏
可以使用UIApplication的statusBarStyle方法来设置状态栏,不过,首先需要停止使用View controller-based status bar appearance。在project target的Info tab中,插入一个新的key,名字为View controller-based status bar appearance,并将其值设置为NO。
然后就可以使用下面的代码来设置状态栏风格了:
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];
- 通过 preferredStatusBarStyle 这个方法来实现
自定义一个 UINavigationController 的子类,在这个子类中重写 preferredStatusBarStyle 这个方法,这样在 UIViewController 中就有效了,如下:
- (UIViewController *)childViewControllerForStatusBarStyle {
return self.topViewController;
}
- (UIStatusBarStyle)preferredStatusBarStyle {
return [self.topViewController preferredStatusBarStyle];
}
- (BOOL)prefersStatusBarHidden {
return [self.topViewController prefersStatusBarHidden];
}
如要手动执行 preferredStatusBarStyle
[self setNeedsStatusBarAppearanceUpdate];