将数据传递到自定义单元格中的UI按钮

时间:2015-02-12 10:18:20

标签: ios uitableview custom-cell

我有一个带自定义单元格的表格视图控制器。 自定义单元格有一个按钮和一些文本标签。 如何在单击时将行的文本数据传递给按钮?

3 个答案:

答案 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. 您有自定义单元格,其中包含UILabel和UIButton
  2. 点击后,您希望按钮的标题与标签
  3. 的标题相同

    刚刚描述的问题的答案:

    1. 您需要为标签和按钮指定标签,以便在代码中获取对它们的引用。要做到这一点:

      1.1。去故事板

      1.2。选择UILabel

      1.3。从属性中,您可以找到tag属性,给它一个数字(例如1)

      1.4。通过1.1到1.3获取UIButton(给它标记号2)。

    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;
}