我显然不理解如何在iOS 6中使用状态栏色调。我已经阅读了这个问题: Change statusbar tint colour 但实施解决方案表明尚未解决问题。
我已在目标摘要窗格中配置了设置(样式和着色的默认设置),并将状态栏色调参数字典添加到我的info.plist,如WWDC 2012高级外观自定义中所述。
我的状态栏在启动时正确显示,但是一旦我导航到另一个视图控制器,状态栏就会变为黑色。
第二个视图控制器嵌入在自己的导航控制器中。这可能是问题的根源吗?
无论原因是什么,我希望有人可以提供一个解决方案,让我可以在整个申请过程中使我的状态栏保持一致。
如果有任何需要澄清的话,请告诉我,并提前感谢您的任何帮助。
答案 0 :(得分:13)
今天我遇到了同样的问题,但没有一个消化的答案对我有帮助。
由于我定义了自己的颜色(红色,蓝色,绿色,alpha),我不想通过IB添加UIStatusBar,我需要一个单线解决方案。
经过一段时间的测试后,以下内容对我有用:
在application: didFinishLaunchingWithOptions:
中输入以下代码行:
self.window.backgroundColor = [UIColor redColor]; //example color
在通过application: didFinishLaunchingWithOptions:
享受!
答案 1 :(得分:1)
一种解决方案是在界面前放置一个不可见的导航栏。如果您已经在导航界面中,则可能必须将UINavigationController子类化。例如:
UINavigationBar* nav = [[UINavigationBar alloc] initWithFrame:CGRectMake(0,0,320,1)];
nav.tintColor = [UIColor redColor];
nav.alpha = 0;
[self.navigationBar.superview addSubview:nav];
这会导致状态栏变为红色,无论导航栏的色调或背景颜色如何。如果没有导航栏,这也适用。
信用到期的信用;我想到了https://stackoverflow.com/a/13587525/341994将alpha
设置为0。
答案 2 :(得分:0)
第二个视图控制器嵌入在自己的导航中 控制器。这可能是问题的根源吗?
这很可能就是问题 - 但我也认为plist条目会使它成为全球性的。 您是否尝试过使用UIAppearance以编程方式设置它(假设您只支持ios6 +)?
[[UITabBar appearance] setTintColor:[UIColor redColor]];