我有以下星座:
主视图(自定义的UIViewController,没有navigationcontroller或导航栏),含有一个按钮,模态塞格斯到第二表视图控制器,其被嵌入在导航控制器:
的MainView - >导航器 - >的TableView
在的MainView状态栏为黑色(不带iOS 6的变化 - 即使状态栏设置为默认值)在TableViewController状态栏上应该有默认风格(灰色iOS 5中,蓝色调是由于iOS 6的导航栏) 。
在IOS 5,这是通过容易的代码在TableViewController下列行:
if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarStyle:)]) {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
}
iOS 6的下运行此指出发生。 我怎样才能做到这一点? 我试图在项目总结,并在plist中所有可能的状态栏设置(如这里所描述: https://stackoverflow.com/a/12468689/1685971 )
此外,在故事板一切都看起来不错。 运行在模拟器或设备上的应用程序,它看起来不同:
试试这个“黑客”:你有一个导航栏添加到您的第一个视图控制器。 然后你有两种可能性。
1)设定导航栏为0的阿尔法值
要么
2)设置栏的y位置-43px(看这里: http://moduscreate.com/tinting-your-status-bar-in-ios6-and-phonegap/ )
编辑:
为了得到正确的颜色,你必须设置无形UINavigationBar的的tintColor。 因此,在默认情况下将其设置为黑色。 在您的按钮操作,你必须在tintColor设为您的navigationController.navigationBar.tintColor。 在关闭按钮的动作,你需要将其设置回[的UIColor blackColor。
第一视图控制器必须具有功能起作用导航控制器/酒吧。 状态栏不改变颜色在您的应用程序 (在iOS6的),但适应开始考虑您的导航栏的颜色。 如果您的起始视图不包含一个导航栏,状态栏不适合的颜色! (见http://i.stack.imgur.com/n9ubK.png )
您不必设置样式为导航栏的tableviewcontroller。
试试这个办法。 1.导航控制器添加到主视图。 2.设置其属性隐藏肯定。 3.当显示tableviewcontroller,设置导航栏属性隐藏否
导航控制器 - >栏隐藏= YES - >的MainView - >栏隐藏=没有 - >的TableView