关于iOS7里导航控制器中的子控制器设置StatusBar状态失效的问题
2014-02-13 16:53
309 查看
先说一下iOS7里控制StatusBar的两种方式:
第一种方式:全局控制StatusBar1. 在项目的Info.plist文件里设置UIViewControllerBasedStatusBarAppearance为NO。
2. 使用[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];方法设置颜色。
第二种方式:基于控制器的方式控制StatusBar1. 在项目的Info.plist文件里设置UIViewControllerBasedStatusBarAppearance为YES。2.在各个UIViewController里分别控制状态栏的颜色和状态。通过在控制器里实现以下方法来设置状态栏的颜色状态- (UIStatusBarStyle)preferredStatusBarStyle- (BOOL)prefersStatusBarHidden
目前只有两种颜色可选:UIStatusBarStyleLightContent - 白色字UIStatusBarStyleDefault - 黑色字
-------------------------
使用第二种方式的问题是,如果一个控制器在UINavigationController内,则上述的控制StatusBar的方法没有被调用。
解决办法:让UINavigationController实现- (UIViewController *)childViewControllerForStatusBarStyle方法。将顶层的控制器返回。这样就可以了。
可以写一个UINavigationController的category,实现该方法。包含到项目里。
- (UIViewController *)childViewControllerForStatusBarStyle
{
return self.topViewController;
}
本文出自 “rainbownight” 博客,请务必保留此出处http://rainbownight.blog.51cto.com/1336585/1358854
第一种方式:全局控制StatusBar1. 在项目的Info.plist文件里设置UIViewControllerBasedStatusBarAppearance为NO。
2. 使用[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];方法设置颜色。
第二种方式:基于控制器的方式控制StatusBar1. 在项目的Info.plist文件里设置UIViewControllerBasedStatusBarAppearance为YES。2.在各个UIViewController里分别控制状态栏的颜色和状态。通过在控制器里实现以下方法来设置状态栏的颜色状态- (UIStatusBarStyle)preferredStatusBarStyle- (BOOL)prefersStatusBarHidden
目前只有两种颜色可选:UIStatusBarStyleLightContent - 白色字UIStatusBarStyleDefault - 黑色字
-------------------------
使用第二种方式的问题是,如果一个控制器在UINavigationController内,则上述的控制StatusBar的方法没有被调用。
解决办法:让UINavigationController实现- (UIViewController *)childViewControllerForStatusBarStyle方法。将顶层的控制器返回。这样就可以了。
可以写一个UINavigationController的category,实现该方法。包含到项目里。
- (UIViewController *)childViewControllerForStatusBarStyle
{
return self.topViewController;
}
本文出自 “rainbownight” 博客,请务必保留此出处http://rainbownight.blog.51cto.com/1336585/1358854
相关文章推荐
- 关于iOS7里导航控制器中的子控制器设置StatusBar状态失效的问题
- iOS9,导航控制器中的子控制器设置StatusBar状态失效的问题
- VB中关于statusbar状态条随FORM变化的问题,以及如何设置toolbar
- 关于transform: rotate(deg);设置在windows上的safari失效问题
- 关于用js和attr("selected",true);给select设置选中的值失效问题
- 关于iOS7中UIView效果失效问题的解决
- 导航控制器自定义返回控件及手势失效问题
- 关于transform: rotate(deg);设置在windows上的safari失效问题
- 关于用js和attr("selected",true);给select设置选中的值失效问题
- 关于EditPlus3 取消备份后再重新打开 备份设置还原到默认状态的问题
- 关于用js和attr("selected",true);给select设置选中的值失效问题
- ios7 中关于导航切换影响UIScrollView的问题
- iOS7 中关于导航切换影响UIScrollView的问题
- 关于用js和attr("selected",true);给select设置选中的值失效问题
- 关于Entity Framework更新的几种方式以及可能遇到的问题(附加类型“Model”的实体失败,因为相同类型的其他实体已具有相同的主键值)在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值,则可能会发生上述行为
- 关于用js和attr("selected",true);给select设置选中的值失效问题
- ios7 中关于导航切换影响UIScrollView的问题
- 关于用js和attr("selected",true);给select设置选中的值失效问题
- 关于ThinkPHP控制器的方法失效的问题
- IOS上 关于状态栏的相关设置(UIStatusBar)和preferredStatusBarStyle不执行问题