状态栏与ViewController重叠

时间:2009-07-18 15:59:50

标签: iphone cocoa-touch uikit uitabbarcontroller

我在AppDelegate中,我使用:

    ActivitiesViewController *acController = [[ActivitiesViewController alloc] initWithNibName:@"ActivitiesView" bundle:[NSBundle mainBundle]];

    UINavigationController *acNavController = [[UINavigationController alloc] initWithRootViewController:acController];

    [self.tabBarController setSelectedIndex:0];     
    [self.tabBarController setSelectedViewController:acNavController];

切换TabBarController中的视图。结果是靠近窗口顶部:

alt text http://img.skitch.com/20090718-tpgya2nt4yeadacgs54dh8syp2.png

如何让我的观点改变位置?

此致

4 个答案:

答案 0 :(得分:10)

这是真正的答案。 dot before(void)实际上是一个破折号。

- (void)viewWillAppear:(BOOL)animated {
    // to fix the controller showing under the status bar
    self.view.frame = [[UIScreen mainScreen] applicationFrame];
}

答案 1 :(得分:1)

检查在界面构建器或代码中如何定义视图的大小。确保它占据分配给状态栏的20个像素,即高度不应超过460。

答案 2 :(得分:1)

在Interface Builder中,确保视图属性中“模拟接口元素”下的“状态栏”未设置为“无”。

答案 3 :(得分:0)

解决方案是在旧的UINavigationViewController中加载UIViewController。这样UIViewController保持其原来的位置。谢谢你的帮助