如何使用不同的委托和数据源方法在一个类中实现两个Tableview?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用不同的委托和数据源方法在一个类中实现两个Tableview?相关的知识,希望对你有一定的参考价值。

我想在一个类中实现两个Tableview。我Khow objective-C不支持方法重载,而且如何使用相同的方法使用两个TableView,但如果有不同的参数类型怎么办?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

[tableView dismisWithIndexPath:indexPath];
}

- (void)tableView:(YALContextMenuTableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

}
答案

您不能在同一个视图控制器中为两个表视图使用两个单独的委托方法。而不是使用两个不同的表视图委托方法,您可以更好地为表视图设置标记和名称。

第一个表视图名称

 if([tableView isEqual:YourFirstTableViewName]) {
    ......//Your coding part
 }
 else if([tableView isEqual:YourSecondTableViewName]) {
    ......//Your coding part
 }
 else {
    ......//Your coding part
 }

其次使用标签进行表格视图

if(tableView.tag == 0)  //Set tag whatever you want for first table view
{
     ......//Your coding part
}
else if(tableView.tag == 1)  //Set tag whatever you want for second table view
{
     ......//Your coding part
}
另一答案

在delegate方法中,测试表视图类的类型,以确定哪个表视图称为方法,

if ([tableView isMemberOfClass:[YALContextMenuTableView class]]) {
   // do stuff for table 1
} else {
   // do stuff for table 2
}

以上是关于如何使用不同的委托和数据源方法在一个类中实现两个Tableview?的主要内容,如果未能解决你的问题,请参考以下文章