我不确定我是否正确行事。我见过的所有教程都表明几乎所有的控件都是由ViewController自己处理的控件。但Apple文档明确指出每个屏幕应该是一个ViewController,而且每个屏幕上都有不止一件事。如果我应该在每个屏幕上有多个ViewControllers,我该如何将其连接到IB?
我在我的主视图上放了一个UITableView,然后我创建了一个自定义类来处理它。我实现了必要的UITableViewDataSource和UITableViewDelegate协议,然后我将它作为对象添加到我的XIB文件中。我将表连接到该对象,并确保将对象的类设置为我创建的对象。
问题是,只是在我的自定义类中定义了willSelectRowAtIndexPath
方法会导致应用程序在单击表行时崩溃,并出现“无法识别的选择器”错误。我已经经历过几十个论坛,并寻找答案,但他们都是为了确保课程设置正确(我的)或泄漏记忆(对于那些没有使用IB创建它的人)。所以我现在完全不知道为什么会这样。是因为我的自定义类不是UIViewController的子类吗?
编辑:我通过将代码移动到我的主UIViewController中,并将表的数据源和委托设置为(文件的所有者)来解决实际问题,并且它可以正常工作。但我仍然很困惑为什么以前拒绝工作。所有的链接和属性似乎都设置得很好。
答案 0 :(得分:0)
您是否将自定义类设置为UITableViewDelegate?