【发布时间】:2012-05-09 23:04:15
【问题描述】:
首先,我对 iOS 和 Xcode 非常陌生。我已经完成了几个演示,并在开发网站上阅读了很多内容。
我当前的应用程序作为导航控制器开始 > 表格视图控制器(主视图)> 详细视图。它是表格视图中的一个基本菜单,可以深入到显示图片、价格、描述等的项目详细信息。我遵循(主要)来自 iOS 开发库“你的第二个 iOS 应用程序”https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/SecondiOSAppTutorial/Introduction/Introduction.html#//apple_ref/doc/uid/TP40011318-CH1-SW1 的教程 此外,我确实对布局和属性进行了一些实现更改,但最终它完美运行。
现在,事后,我决定我不喜欢应用程序的入口点是表格视图。相反,我更愿意使用其他一些按钮进入视图控制器,其中一个按钮会将您带到菜单。
我的问题如下; 我删除了导航控制器和表格视图之间的关系“根视图控制器”,然后我将它从导航控制器重新连接到我的新视图。我认为将带有 push segue 的按钮链接到旧表视图。 现在该应用程序仍然可以正常构建,但是它在运行时崩溃并出现以下错误 "-[UIViewController setDataController:]: 无法识别的选择器发送到实例 0x6a6ed60 2012-05-09 16:51:28.618 [16513:f803] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIViewController setDataController:]:无法识别的选择器发送到实例 0x6a6ed60” * 首先抛出调用栈:"
setter 似乎得到了一些错误的数据。所以我猜这是旧的rootview无效的问题,我真的没有足够的知识来解决这个问题。请帮忙。
抱歉,没有代表发布图片,如果需要,请告诉我,我会在某处托管。
【问题讨论】:
-
好的,我快接近了。我按照建议制作了 FirstViewController 类。
#import "DriftMasterViewController.h" @interface FirstViewController : UIViewController @property (strong, nonatomic) MenuItemDataController *dataController;现在界面不会崩溃,但是它不再在 tableview 中显示我的菜单项。没有看到正确的实例? -
UPDATE SOLVED..我认为 所以我在我的 FirstViewController.m
DriftMasterViewController *masterViewController = [segue destinationViewController]; masterViewController.dataController = self.dataController;中添加了一个 prepareForSegue 并且一切都按预期工作.. 应该这样做还是我只是在这里黑客攻击吗? -
您在那里所做的是直接从情节提要中获取控制器,如果该 segue 专门移动到您要引用的控制器,这是正确的方法。另一种方法是直接要求情节提要为您提供具有指定标识符的视图控制器(您也在情节提要的属性中设置)
标签: ios xcode uiviewcontroller storyboard tableview