先说一下iOS7里控制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;
}
本文出自 “rainbownight” 博客,请务必保留此出处http://rainbownight.blog.51cto.com/1336585/1358854
关于iOS7里导航控制器中的子控制器设置StatusBar状态失效的问题
原文:http://rainbownight.blog.51cto.com/1336585/1358854