我有一个带自定义单元格的表格视图控制器。 自定义单元格有一个按钮和一些文本标签。 如何在单击时将行的文本数据传递给按钮?
答案 0 :(得分:3)
1)在您的cellForRowAtIndexPath:中,将按钮标记指定为索引
cell.yourbutton.tag = indexPath.row;
2)为按钮添加目标和操作,如下所示。
[cell.yourbutton addTarget:self action:@selector(yourButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
3)在ViewControler中基于索引的代码行动。
-(void)yourButtonClicked:(UIButton*)sender{
[arrayOfTextVaule objectAtIndex:sender.tag];}
OR
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
yourCustomCell *selectedCell=[tableView cellForRowAtIndexPath:indexPath];
NSLog(@"%@",selectedCell.label);}
答案 1 :(得分:0)
我理解的问题:
刚刚描述的问题的答案:
您需要为标签和按钮指定标签,以便在代码中获取对它们的引用。要做到这一点:
1.1。去故事板
1.2。选择UILabel
1.3。从属性中,您可以找到tag属性,给它一个数字(例如1)
1.4。通过1.1到1.3获取UIButton(给它标记号2)。
在表视图控制器(.m类文件)中,添加以下代码:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath]; // fetch an instance from the cell
UILabel * lbl = (UILabel *) [cell viewWithTag: 1]; // fetch an instance of the label
UIButton * btn = (UIButton *) [cell viewWithTag: 2]; // fetch an instance of the button
btn.title = lbl.text; // I don't remember the text properties :D (figure it our yourself. it should be easy)
}
答案 2 :(得分:0)
简单...将标签文本添加到按钮accessibilityValue并在目标方法中恢复它。
{
UIButton * button = [[UIButton alloc]init];
button.accessibilityValue = label.text;
[button addTarget:self action:@selector(sendLabelString:) forControlEvents:UIControlEventTouchUpInside];
}
-(void)sendLabelString:(UIButton*)sender{
NSString * labelString = sender.accessibilityValue;
}