概述:
首先,我UITableView使用Interface Builder将其置于Xcode生成的视图中.视图的文件所有者设置为Xcode生成的子类UIViewController.为了这个子类我已经加入工作的实施numberOfSectionsInTableView: tableView:numberOfRowsInSection:以及tableView:cellForRowAtIndexPath:与表视图的dataSource,并delegate通过在Interface Builder文件所有者连接到这个类.
上述配置没有问题.当我想将这个Table View dataSource和delegate-implementations移到一个单独的类时,问题就出现了,很可能是因为除了Table View之外还有View上的其他控件,我想将Table View相关的代码移到它的自己的班级.为此,我尝试以下方法:
UITableViewController在Xcode中创建一个新的子类numberOfSectionsInTableView:,tableView:numberOfRowsInSection:并移动tableView:cellForRowAtIndexPath:到新的子类UITableViewController的顶层 ,删除为此自动创建的/ ,然后将该类设置为与新子类匹配UIViewUITableViewUITableViewControllerUITableViewControllerUITableView的现有dataSource和delegate连接,并将它们连接到新的UITableViewController完成后,我没有工作UITableView.我最终得出了三个结果中的一个,这些结果似乎随机发生:
UITableView加载时,我得到一个运行时错误,指示我发送tableView:cellForRowAtIndexPath:到一个无法识别它的对象UITableView加载时,项目会毫无错误地进入调试器UITableView没有出现通过一些调试并创建了一个基本项目来重现这个问题,我通常会看到上面的第三个选项(没有错误但没有可见的表视图).我添加了一些NSLog调用,发现虽然numberOfSectionsInTableView:并且numberOfRowsInSection:都被调用,但cellForRowAtIndexPath:不是.我确信我错过了一些非常简单的事情,希望对于经验丰富的人来说答案可能是显而易见的.如果这不是一个简单的答案,我很乐意更新一些代码或示例项目.谢谢你的时间!
完成重现的完整步骤:
TableTestTableTestViewController.xib …我UITableView在a中使用两个s UIViewController,如何在两个tableviews中填充行和单元格?当我给第二个tableview时,它表示部分中行数的重复声明等.