我有一个UITableView的自定义单元格。单元格中有一个名为ShowData的按钮。我为该按钮添加了一个选择器:
[cell.ShowData addTarget:self action:@selector(ShowData:) forControlEvents:UIControlEventsTouchUpInside];
在My ShowData:方法中,我想要一些用于显示单元格的信息。我怎样才能以这种方式传递信息?感谢。
答案 0 :(得分:0)
您的showData:
将收到按钮本身作为其sender
参数。您可以按下按钮的超级视图,直到找到自定义单元格,然后访问您添加到单元格中的任何属性。
- (IBAction)showData:(id)sender
{
while (sender && ![sender isKindOfClass:[MyCustomTableViewCell class]])
sender = [sender superview];
if (!sender) {
// error
}
MyCustomTableViewCell *cell = sender;
// do stuff using cell
}
答案 1 :(得分:0)
在这种情况下,我通常将按钮子类化并添加一个ivar以使用UITableViewCell识别它。
例如,您可以使用两个NSInteger属性buttonIndex和buttonSection来标识按钮所在的tableview的部分和行。
在cellForRowAtIndexPath中构造单元格时,可以将indexPath.row分配给buttonIndex,将indexPath.section分配给buttonSection。
现在,在showData方法中,只需将发件人作为自定义按钮读取,然后访问这些属性:)
编辑:
如果你正在使用单个部分tableview,你可以简单地设置button.tag = indexPath.row。 UIButton继承自UIView,它具有专门用于此目的的标记属性。