iOS应用程序有两个视图。它崩溃但不会给我一个错误

时间:2013-03-15 04:29:13

标签: ios objective-c xcode

程序基本上只是在两个视图之间切换。我正在尝试学习如何创建一个多视图应用程序。

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];

FirstViewController *aView = [[FirstViewController alloc]initWithNibName:@"FirstViewController" bundle:nil];
self.firstView = aView;
[window addSubview:firstView.view];

self.window.rootViewController = aView;

return YES;

}

我收到一条错误消息“应用程序在应用程序启动结束时应该有一个根视图控制器”。我添加了行“self.window.rootViewController = aView;”那个错误就消失了。现在,我的应用程序将从视图1切换到视图2(它始终能够执行此操作)但是当尝试切换回来时它会崩溃。我得到的唯一输出是“(11db)”。它将我带到一个带有大量内存地址的屏幕,并以绿色突出显示以下内容:

0x10dc09b:  movl   8(%edx), %edi

它说“线程1:EXC_BAD_ACCESS(代码= 2,地址)”

我不知道如何解释这个输出。我在youtube上关注了一系列视频指南来创建这个程序。我做了两次以确保我做的一切都正确(我做了)。如果您想要我做的所有事情,这些指南被称为“xcode教程#3第1/3部分:多视图应用程序”。

我非常困惑。似乎没有其他人遇到问题。

1 个答案:

答案 0 :(得分:0)

在您的窗口可见之前,您应该设置它的根视图控制器。

试试这个:

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];


FirstViewController *aView = [[FirstViewController alloc]initWithNibName:@"FirstViewController" bundle:nil];
self.firstView = aView;

self.window.rootViewController = aView;

[self.window makeKeyAndVisible];

return YES;

}

如果您想要查看多个视图,请在 RootViewController的 * viewDidLoad *中写入条件,然后您可以重定向到另一个视图。

你还有什么疑问告诉我。

一切顺利!!!