如何改变状态栏上模态访问的iOS 6
我有以下星座:如何改变状态栏上模态访问的iOS 6
主视图(自定义的UIViewController,没有navigationcontroller或导航栏),含有一个按钮,模态塞格斯到第二表视图控制器,这是嵌入导航控制器:
的MainView - >导航器 - > TableView中
在的MainView状态栏是黑色(与iOS 6没有改变 - 即使在状态栏设置为默认值) 在TableViewController状态栏应该具有默认样式(iOS 5中为灰色,Blu e由于iOS 6中的导航栏而着色)。
在iOS 5中,这是容易通过的代码在TableViewController下列行:
if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarStyle:)]) {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
}
iOS 6的下运行该注意到发生的情况。我怎样才能做到这一点?我尝试了所有可能的状态栏设置下的项目总结和plist(像这里描述:https://*.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中
问题是,模式显示TableViewController。因此,MainViewController和TableViewController不能嵌入到同一个导航控制器中(请参阅故事板屏幕截图)。当使用两个导航控制器(一个用于MainView和一个用于TableView)时,上面描述的问题保持不变... – FrankZp
即使功能状态栏着色不是Apple完全实施的。您的解决方案是一种解决方法。干净的解决方案应该是应用程序检查每个视图控制器上的状态栏色调 - 不仅在第一个视图控制器上。 – FrankZp