在tableview中访问我的自定义单元格

时间:2013-11-18 18:17:34

标签: ios objective-c

现在我有一个像这样构建的tableview:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"PhotoCell";
    PhotoSummaryCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    // Configure the cell...

    NSString *photoCaption = [[[self.form valueForKey:@"photos"] objectAtIndex:indexPath.row] objectForKey:@"caption" ];

    cell.textfieldCaption.text = photoCaption;
    cell.textfieldCaption.tag=indexPath.row;

    return cell;
}

我想要做的是获取已编辑的文本字段的索引?我在自定义单元格中连接了文本字段,并在结束编辑时执行了一个操作:

- (IBAction)getIndexForCaption:(id)sender {

[[[self.form valueForKey:@"photos"] objectAtIndex:cell.textfieldCaption.tag] setObject:cell.textfieldCaption.text forKey:@"caption"];

}

但是现在怎么样,我没有“单元格”所以我得到了未声明的标识符“单元格”错误。在这种情况下如何获得自定义单元格?

1 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点。就个人而言,我更喜欢使用PhotoSummaryCell的额外属性创建UITextField的子类。您可以在单元格被回收时设置此属性,这将使得获取文本字段的索引变得如此简单:

NSIndexPath *indexOfTextField = [self.tableView indexPathForCell:textField.cell];

然后,当然,您可以单步执行文本字段视图层次结构,直到找到一个单元格,或者将索引路径的行保存到textfields tag属性中,如@rmaddy和@Martin R指出的那样。

确保您将cell属性声明为weak,以避免保留周期。