我有以下星座:
主视图(自定义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)
此外,在故事板中一切都很好.在模拟器或设备上运行应用程序看起来不同:

试试这个"hack":你必须在你的第一个视图控制器中添加一个导航栏.那么你有两种可能性.
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].
第一个视图控制器必须有一个导航控制器/栏才能使该功能正常工作。状态栏不会在整个应用程序中改变颜色(在 iOS6 中),但会适应起始视图的导航栏颜色。如果您的起始视图不包含导航栏,则状态栏不会调整颜色。!(参见https://i.stack.imgur.com/n9ubK.png)
| 归档时间: |
|
| 查看次数: |
4856 次 |
| 最近记录: |