-1

在此处输入图像描述

现在我的 StoryBoard 是这样的:

X->X->X

我希望它是这样的:

X->Y->X->X

Y 将是一个简单的 Tableview,一端连接到导航控制器,另一端连接到 masterviewcontroller,并将基本单元格推送到它。除此之外,我不想更改应用程序中的任何内容。

但是当我尝试这样做时,我收到了一个错误:

ScaryBugs[1768:11303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewController setBugs:]: unrecognized selector sent to instance 0x71d0940'

我猜这是因为我不完全理解这 3 行在做什么。

AppDelegate.m:

UINavigationController * navController = (UINavigationController *) self.window.rootViewController;
MasterViewController * masterController = [navController.viewControllers objectAtIndex:0];
masterController.bugs = bugs;

代码来源

4

1 回答 1

0

第三行只是将 masterController 的 bugs 属性分配给在应用程序委托中创建的具有局部变量名称 bugs 的数组。前 2 行只是获取对故事板中创建的控制器的引用。

通过将另一个控制器作为导航控制器的根视图控制器,你搞砸了引用。添加它之后,MasterController 现在甚至在您推送到它之前都不会被实例化,因此无法设置它的 bugs 属性。您的新控制器不属于那里。从你的蝙蝠、鲨鱼等列表推送到错误列表是没有意义的——通常,推送(特别是如果它来自表格视图单元格)意味着你要呈现一些信息提供有关您触摸的单元格的更多详细信息。如果您尝试扩展本教程,您确实需要更改应用程序的整体结构,这可能需要对代码进行相当多的更改。

于 2012-12-08T00:35:41.340 回答