如何判断哪些自定义UITableViewCell的UIButton已被点击?

时间:2015-06-17 18:53:50

标签: ios objective-c uitableview

我有一个带有几个UIButton的自定义UITableViewCell。

我将IBOutlet和IBAction的设置从按钮设置到我的自定义TableViewCell。

现在,当我在TableViewController上使用这个自定义单元格时,如何在控制器中知道哪个单元格的X按钮被点击?

假设我在每个单元格上都有一个X和Y按钮,我正在使用动态单元格。假设我有10个。用户点击第二个单元格上的X按钮。

我的自定义UITableViewCell代码将触发IBAction的xButtonTapped。如何将该信息传递给我的TableViewController?团?

如果是这样,我怎么知道用户点击按钮的哪个单元格?

2 个答案:

答案 0 :(得分:1)

在tableview控制器符合的单元格上声明一个协议,然后你可以在按钮点击时调用一个方法,甚至可以发送“self”作为参数来获取实际的单元格。

答案 1 :(得分:0)

一个简单的解决方案可能是在协议中创建表时为按钮设置标记,如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    YourTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

    [cell.youCellButton setTag:indexPath.row];

    //... whatever aditional logic you want to implement here...

    return cell;
}

然后从您IBAction中,您只需检查发件人的标签并分配给类变量或类似的东西:

int clickedButtonCell = [sender tag]