按标签编辑UITableViewCell

时间:2014-03-20 16:07:27

标签: ios objective-c uitableview tags

我一直试图找到一个简单的答案,我认为某些事情不应该那么困难,但我要么找不到合适的答案,要么无法绕过它。

我正在尝试更改/编辑一个特定tableview单元格的文本标签内容。因此,为了示例,我想在UITableView外部使用UIButton但在同一个View Controller中更改第2行中的文本,同时保持其他文本相同。

我知道你使用viewWithTag但除此之外我无法理解这一点!请帮帮....

这是我目前的代码

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    EntryCell *cell = (EntryCell *)[contentTable dequeueReusableCellWithIdentifier:@"Cell"];

    cell.mainLabel.tag = indexPath.row;
    cell.mainLabel.text = @"hello";

    return cell;

}

-(void)buttonPressed:(UIButton *)button {
    cell.mainLabel = (UILabel *)[contentTable viewWithTag:2];
    cell.mainLabel.text = @"goodbye";

}

1 个答案:

答案 0 :(得分:1)

请勿使用viewWithTag,请使用以下内容获取对该单元格的引用

-(void)buttonPressed:(UIButton *)button 
{
    EntryCell *cell = (EntryCell *)[tblView cellForRowAtIndexPath: [NSIndexPath indexPathForRow:2 inSection:0]];
    if(cell != nil)
    {
        cell.mainLabel.text = @"goodbye";
    }
}

修改

正如大卫所指出的,如果单元格不可见,这将被覆盖,因为当cellForRowAtIndexPath:变得可见时将再次调用它。用您指定的任何内容覆盖此更改。

您需要在此之后更新数据模型,以便更改是永久性的