简介:
我面临的根本问题是iOS7如UINavigationController
所描述的那样处理UITabBarViewController
状态栏的方式here (斜体引用,粗体的重要部分):
从iOS 7视图控制器开始全屏显示,默认情况下,如图1所示。这意味着它们将覆盖整个屏幕,包括状态栏下方的区域。
图1 状态栏下方的全屏视图控制器
图2 显示状态栏下方的视图,类似于iOS 7之前的行为。
使用不透明UINavigationController或UITabBarController的应用程序会自动将其内容保留在状态栏下方。
问题:我的根控制器视图是UINavigationController
..其中一个视图控制器是UITableView
,而UITabBarViewController
又有一个{{1}} RootViewController的。这种关系如下所示:
运行此操作,状态栏显示为白色:
而不是其他视图控制器(没有navbar + tableview):
基于上面的粗体引用..这非常有意义..因为iOS7暴力迫使uinavbar及其状态栏下方的所有子视图..
通常我解决这个问题的方式(我已经阅读了很多关于这个问题的答案)是通过让我的rootviewcontroller有一个包含颜色(在这种情况下是红色)的视图,我希望在状态下显示-bars在上面的页面中..但是当我的rootViewController是{{1}}时,我不知道该怎么做?
答案 0 :(得分:0)
在尝试各种解决方案之后......我发现继承UINavBar
并覆盖其layoutSubviews
来拉伸它的高度解决了这个问题:
- (void)layoutSubviews {
self.frame = CGRectMake(0, 0, 320, 64);
}