Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 切换视图时未正确绘制视图_Iphone_Xcode - Fatal编程技术网

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

Iphone 切换视图时未正确绘制视图,iphone,xcode,Iphone,Xcode,我的应用程序由3个视图组成。我在AppDelegate中定义了3个helper方法来在每个视图之间切换(这样每个视图都可以调用另一个视图),如下所示: -(IBAction)goToView1 { if ( view1 == nil ) { View1 *thisView = [[View1 alloc] initWithNibName:@"View1" bundle:nil]; view1 = thisView; } for (

我的应用程序由3个视图组成。我在
AppDelegate
中定义了3个helper方法来在每个视图之间切换(这样每个视图都可以调用另一个视图),如下所示:

-(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]; 
}
如果用户想要切换到另一个视图,我会将一个按钮绑定到视图控制器中定义的
iAction

-(IBAction)goToOtherView:(id)sender {
    ViewSwitcherAppDelegate *root = [[UIApplication sharedApplication] delegate];   
    [root goToView1];
}
这一切对于切换视图都很好,但当绘制视图时,视图显示不正确,就像忽略状态栏一样:

我做错了什么

它在应用程序启动时呈现良好,因此我怀疑我将子视图添加到窗口的方式有问题


提前谢谢

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


但最好使用UIViewController并将其推到UINavigationController上

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


但最好使用UIViewController并将其推到UINavigationController上

是否设置视图的框架属性?如果是的话,你能给我们看一下密码吗?我不知道。视图是使用默认值创建的。下面是一个展示了相同行为的示例项目(使用SDK 3.0):您是否设置视图的frame属性?如果是的话,你能给我们看一下密码吗?我不知道。视图是使用默认值创建的。下面是一个展示了相同行为的示例项目(使用SDK 3.0):谢谢-我采纳了您的建议,并重构了设计,以使用UINavigationController。谢谢-我采纳了您的建议,并重构了设计,以使用UINavigationController。