1.ios中设置状态栏的样式由 最顶层的UIWindow所在的控制器控制处理。
2.ios9之前可以不用设置window的根控制器,ios9必须设置根控制器。
3.ios9后设置状态栏的样式(隐藏)时,在最顶层的UIWindow所在的控制器中通过下面两个方法处理
- (UIStatusBarStyle)preferredStatusBarStyle { //设置样式
returnUIStatusBarStyleLightContent;
}
- (BOOL)prefersStatusBarHidden { //设置隐藏显示
return NO;
}
通过
[[UIApplication sharedApplication] setStatusBarHidden:<#(BOOL)#>];
[[UIApplication sharedApplication] setStatusBarStyle:<#(UIStatusBarStyle)#>];设置不太好使。
4.ios9中如果创建多个window,则改变状态栏的样式,只能在最顶层的window中的控制器中设置状态栏样式才有效。
例如:设置两个Window,通过在最顶层的window中的控制器中设置状态栏样式更改转态栏
Demo地址 https://github.com/shn19891109/IOS9UIWindow