0

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

{

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 部分:多视图应用程序”。

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

4

1 回答 1

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 * 中写入条件,然后您可以重定向到另一个视图。

仍然有任何疑问,请告诉我。

一切顺利 !!!

于 2013-03-15T04:33:40.297 回答