iOS9以后更改状态栏 statusBar 字体颜色

来源:互联网 发布:中国特权阶层 知乎 编辑:程序博客网 时间:2024/05/15 06:26

以前我们为了能够实时的控制顶部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





1 0