如何使用不同的委托和数据源方法在一个类中实现两个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?的主要内容,如果未能解决你的问题,请参考以下文章

当两个方法同名但参数不同时如何在VB.Net中实现一个接口

在每个模型的不同 DAL 类中实现 JPA 存储库方法时如何避免重复的代码行/代码块

你能在 UIViewController 类中实现 Accessibility 方法吗?

用相同的方法在一个类中实现两个接口。哪个接口方法被覆盖?

如何在swift中实现数组的深拷贝

在类中实现委托(iOS/Swift)