标签:
iOS9之前控制StatusBar的两种方式:
1. 在项目的Info.plist文件里设置UIViewControllerBasedStatusBarAppearance为NO。
2. 使用[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];方法设置颜色。
- (BOOL)prefersStatusBarHidden
-------------------------
使用第二种方式的问题是,如果一个控制器在UINavigationController内,则上述的控制StatusBar的方法没有被调用。
解决办法:让UINavigationController实现- (UIViewController *)childViewControllerForStatusBarStyle方法。将顶层的控制器返回。这样就可以了。
可以写一个UINavigationController的category,实现该方法。包含到项目里。
- (UIViewController *)childViewControllerForStatusBarStyle
{
return self.topViewController;
}
另:model出来的控制器,和UINavigationController本身不受影响!
iOS9,导航控制器中的子控制器设置StatusBar状态失效的问题
标签:
原文地址:http://www.cnblogs.com/chglog/p/4919225.html