我可以在多个tableViews中使用单个原型单元吗?

aks*_*gde 19 uitableview custom-cell ios ios5

我在两个不同的控制器中有两个不同的tableviews.但我需要在其中显示的细胞看起来完全相同.我在一个tableView和子类UiTableViewCell中创建了一个原型单元.现在,如果我想在不同的控制器中使用相同的单元格,我该如何使用它?

如果我只是在新控制器中导入该customCell文件并使用故事板中给出的相同标识符来解除它,它就不会工作.它说

断言失败 - [UITableView _configureCellForDisplay:forIndexPath:]

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'UITableView dataSource必须从tableView返回一个单元格:cellForRowAtIndexPath:'

所以,显然它意味着,细胞是零.那么如何从故事板中实例化相同的单元格呢?是否可以或者我是否必须为新表创建不同的customCell?

aks*_*gde 28

K ..我明白了.首先,

我不能在两个不同的tableview中使用一个原型单元格.但是,我可以在两个不同的tableview中使用相同的tableViewCell子类.

要实现它,只需从一个控制器复制原型单元并将其粘贴为另一个tableview的原型单元.粘贴的tableview类保持不变.只需更改reuseIdentifier即可.并使用它.

编辑:如果您的单元格具有相当复杂的UI,那么单独为单元格创建单独的xib更有意义.然后以编程方式向表视图注册xib.这样,你只有一个单元格的副本,并且在ui发生变化时更好地维护它.

  • 对我来说,甚至不需要更改reuseIdentifier. (4认同)