切换视图时视图未正确绘制

时间:2009-06-28 06:19:19

标签: iphone xcode

我的应用包含3个视图。我已在AppDelegate中定义了3个辅助方法,以在每个视图之间切换(以便每个视图可以调用另一个视图),如下所示:

-(IBAction)goToView1 {
    if ( view1 == nil )
    {
        View1 *thisView = [[View1 alloc] initWithNibName:@"View1" bundle:nil];
        view1 = thisView;
    }

    for (UIView *view in window.subviews)
        [view removeFromSuperview];

    [window addSubview:view1.view]; 
}

如果用户想切换到另一个视图,我将按钮绑定到视图控制器中定义的IBAction

-(IBAction)goToOtherView:(id)sender {
    ViewSwitcherAppDelegate *root = [[UIApplication sharedApplication] delegate];   
    [root goToView1];
}

这一切都适用于切换视图,但是当绘制视图时,它显示不正确,就像忽略状态栏一样:

alt text http://lh4.ggpht.com/_nbwj7pSrW10/SkcGEZ3XH0I/AAAAAAAABMs/nAkkja27e8I/s576/ViewSwitchingProblem.png

我做错了什么?

当应用程序启动时呈现正常,所以我怀疑将子视图添加到窗口的方式有问题。

提前致谢!

1 个答案:

答案 0 :(得分:1)

由于您没有使用视图的控制器来显示它,您必须自己调整视图的框架。您必须将其原点设置为{0,20}以考虑状态栏的空间。

但是你最好使用UIViewController并在UINavigationController上推送它。 See the docs.