如何更改状态栏的模式视图iOS 6

我有以下星座:

主视图(自定义UIViewController,无导航控制器或导航栏),其中包含一个将模态切换到第二个表视图控制器的按钮,嵌入在导航控制器中:

MainView – >导航控制器 – >的TableView

在MainView上,状态栏为Black(即使在状态栏设置为认值时,与iOS 6无变化)
在TableViewController上,状态栏应具有认样式(iOS 5中为灰色,由iOS 6中的导航栏引起蓝色).

在iOS 5中,这很容易通过TableViewController中的以下代码行:

if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarStyle:)]) {
   [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
}

在iOS 6下运行注意事项.我该怎么做?我尝试所有可能的状态栏设置项目摘要和plist(如下所述:https://stackoverflow.com/a/12468689/1685971)

此外,在故事板中,一切都看起来不错.在模拟器或设备上运行应用程序看起来不同:

解决方法

尝试这个“黑客”:
您必须在第一个视图控制器中添加一个导航栏.那么你有两种可能性.

1)将导航栏的alpha值设为0

要么

2)将条的y位置设置为-43px(看这里:http://moduscreate.com/tinting-your-status-bar-in-ios6-and-phonegap/)

编辑:

要获得正确的颜色,您必须设置不可见的UINavigationBar的tintColor.所以认设置为黑色.在您的按钮操作中,您必须将tintColor设置为navigationController.navigationBar.tintColor.在关闭按钮的动作中,您需要将其设置回[UIColor blackColor].

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...