iOS 6中状态栏色调颜色变为黑色

时间:2012-10-18 23:22:03

标签: iphone ios uikit uistatusbar

我显然不理解如何在iOS 6中使用状态栏色调。我已经阅读了这个问题: Change statusbar tint colour 但实施解决方案表明尚未解决问题。

我已在目标摘要窗格中配置了设置(样式和着色的默认设置),并将状态栏色调参数字典添加到我的info.plist,如WWDC 2012高级外观自定义中所述。

我的状态栏在启动时正确显示,但是一旦我导航到另一个视图控制器,状态栏就会变为黑色。

第二个视图控制器嵌入在自己的导航控制器中。这可能是问题的根源吗?

无论原因是什么,我希望有人可以提供一个解决方案,让我可以在整个申请过程中使我的状态栏保持一致。

如果有任何需要澄清的话,请告诉我,并提前感谢您的任何帮助。

3 个答案:

答案 0 :(得分:13)

今天我遇到了同样的问题,但没有一个消化的答案对我有帮助。

由于我定义了自己的颜色(红色,蓝色,绿色,alpha),我不想通过IB添加UIStatusBar,我需要一个单线解决方案。

经过一段时间的测试后,以下内容对我有用:

  1. 在项目摘要中,从下拉菜单中选择状态栏样式黑色Transculent。
  2. application: didFinishLaunchingWithOptions:中输入以下代码行:

    self.window.backgroundColor = [UIColor redColor]; //example color

  3. 在通过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/341994alpha设置为0。

答案 2 :(得分:0)

  

第二个视图控制器嵌入在自己的导航中   控制器。这可能是问题的根源吗?

这很可能就是问题 - 但我也认为plist条目会使它成为全球性的。 您是否尝试过使用UIAppearance以编程方式设置它(假设您只支持ios6 +)?

[[UITabBar appearance] setTintColor:[UIColor redColor]];