关于iOS 9.0中状态栏设置方法被取代

以前我们为了能够实时的控制顶部statusbar的样式,可能会在喜欢使用:
但是这么做之前需要将 info.plist 里面加上View controller-based status bar appearance BOOL值设为NO,就是把控制器控制状态栏的权限给禁了,用UIApplication来控制。但是这种做法在iOS9不建议使用了,建议我们使用吧那个BOOL值设为YES,然后用控制器的方法来管理状态栏比如:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
首先在info.plist文件中,
View controller-based status bar appearance项设为YES,则View controller对status bar的设置优先级高于application的设置。
为NO则以application的设置为准,view controller的prefersStatusBarHidden方法无效,是根本不会被调用的。
调用
[[UIApplicationsharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];
需要先在info.plist设置View controller-based status bar appearance项设为No 不设置默认View controller对status bar的设置优先级高于application的设置 所以上面代码会无效

之前的设置方法已然要报警告
消除警告设置方法:
1. "View controller-based status bar appearance" 设置为YES, 然后
- (BOOL)prefersStatusBarHidden {
return YES;
}
2. "View controller-based status bar appearance" 设置为NO, 在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 里面加上
UIApplication *app = [UIApplication sharedApplication];
app.statusBarStyle = UIStatusBarStyleLightContent;
警告消除。
网友评论