我只有1个tableView类但只有4个单元类。我将相同的tableView添加到应用程序中的所有viewControllers。不同之处在于细胞的类型(确切地说是类)。我想根据tableView所在的viewController更改单元格类。此外,单元格的内容视图是在单元格类的另一个子类中绘制的。请提供一个解决方案或方法来实现此功能。 提前谢谢。
答案 0 :(得分:1)
使用NSObjects -class
方法向tableView询问它的类名,并使用它来决定要使用的单元类。
答案 1 :(得分:1)
您可能应该为每个视图控制器使用不同的表视图(如果您还没有)。
通常,您还可以为每个表视图使用不同的数据源/委托(例如,您可以使用每个视图控制器)。
但是,如果必须对所有四个表视图使用与数据源/委托相同的类,tableView:cellForRowAtIndexPath:
(以及其他委托方法)会将表视图作为第一个参数,因此您可以像这样返回正确的单元格:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if (tableView == myTableViewOne) {
// dequeue or allocate/init and configure/return the cell for the first table view here
} else if (tableView == myTableViewTwo) {
// dequeue or allocate/init and configure/return the cell for the second table view here
} else if (tableView == myTableViewThree) {
// dequeue or allocate/init and configure/return the cell for the third table view here
} else {
// dequeue or allocate/init and configure/return the cell for the fourth table view here
}
}