我有以下星座:
主视图(自定义UIViewController,无导航控制器或导航栏),包含一个按钮,该按钮以模态方式分段到第二个表视图控制器,该控制器嵌入在导航控制器中:
MainView - >导航控制器 - > TableView
在MainView上,状态栏为黑色(iOS 6无需更改 - 即使状态栏设置为默认值)在TableViewController上,状态栏应具有默认样式(iOS 5中的灰色,iOS 6中的导航栏为蓝色) .
在iOS 5中,通过TableViewController中的以下代码行很容易实现:
if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarStyle:)]) {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
}
Run Code Online (Sandbox Code Playgroud)
在iOS 6下运行此操作会发生.我怎样才能做到这一点?我在项目摘要和plist中尝试了所有可能的状态栏设置(如下所述:https://stackoverflow.com/a/12468689/1685971)
此外,在故事板中一切都很好.在模拟器或设备上运行应用程序看起来不同:

我显然不明白如何在iOS 6中使用状态栏色调.我已经阅读了这个问题: 更改状态栏色调 但是实现建议的解决方案还没有解决问题.
我已在目标摘要窗格中配置了设置(样式和着色的默认设置),并将状态栏色调参数字典添加到我的info.plist,如WWDC 2012高级外观自定义中所述.
我的状态栏在启动时正确显示,但是一旦我导航到另一个视图控制器,状态栏就会变为黑色.
第二个视图控制器嵌入在自己的导航控制器中.这可能是问题的根源吗?
不管是什么原因,我希望有人可以提供一个解决方案,让我可以在整个申请过程中使我的状态栏保持一致.
如果有任何需要澄清的话,请告诉我,并提前感谢您的任何帮助.
我有一个标签栏应用程序,状态栏色调颜色设置为默认值 - 所以它始终是我在我的应用程序中选择的蓝色.
但是,在一个视图中,我隐藏了我的导航栏,如下所示:
[self.navigationController setNavigationBarHidden:YES];
Run Code Online (Sandbox Code Playgroud)
这是在viewWillAppear方法中,视图是可访问的,因为它是我的应用程序的选项卡之一.
我隐藏它的原因是因为我想在其位置放置一个工具栏(大约有6个按钮).
我已设置工具栏的色调颜色,但此视图上的状态栏始终为黑色.有没有办法重新设置此视图的状态栏,或者是否有更好的方法隐藏导航栏以保留状态栏色调颜色.
更新我在某处读到当着色设置为默认值时,状态栏的颜色将是标题中最低像素的颜色.
我曾尝试将导航栏隐藏在故事板中,并尝试将色调颜色更改为"自定义",但这也没有效果.
这两个截图可能会说明我的问题.切换导航栏会更改状态栏颜色.这是有问题的视图嵌入的导航控制器.


对于具有"独特"设计的iphone项目(我根本不满意),我需要绘制一个自定义视图,该视图与UINavigationController中控制器的导航栏部分重叠.目标是iphone/ios 6,具有固定的设备方向(纵向).
我的电流的解决方案是通过禁用编程导航栏self.navigationController.navigationBar.hidden = YES;在viewDidLoad我的控制器,并画出一个"假"的导航栏,油漆过这一点.这导致状态栏颜色保持黑色的问题(因为没有可见的真实导航栏).这里讨论Ios 6状态栏颜色:iOS 6中的状态栏颜色?
我已经尝试使用[self.view insertSubview:OVERLAPVIEW aboveSubView:self.navigationController.navigationBar]但它没有用,并且在导航栏下方绘制了OVERLAPVIEW.
是否有另一种方法可以将导航栏与另一个视图重叠(z-wise)?或者有没有办法在没有显示导航栏时更改状态栏颜色(不幸的是,除此之外,具有重叠的视图是应用程序的主视图和用户可见的第一个屏幕)
完全披露:我是ios noob和堆栈溢出潜伏者 - 这是我关于堆栈溢出的第一个问题,请帮助我澄清我的问题并在必要时提高我的堆栈溢出技能.