5

我显然不明白如何在 iOS 6 中使用状态栏色调。我读过这个问题: 更改状态栏色调颜色 但实施建议的解决方案并没有解决问题。

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

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

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

不管是什么原因,我希望有人能提供一个解决方案,让我在整个应用程序中使我的状态栏保持一致。

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

4

3 回答 3

13

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

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

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

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

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

通过代码设置样式时,这对我不起作用application: didFinishLaunchingWithOptions:

享受!

于 2013-01-23T17:54:53.843 回答
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的想法。

于 2013-01-30T20:37:25.883 回答
0

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

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

[[UITabBar appearance] setTintColor:[UIColor redColor]];
于 2012-10-18T23:44:09.513 回答