我一直试图找到一个简单的答案,我认为某些事情不应该那么困难,但我要么找不到合适的答案,要么无法绕过它。
我正在尝试更改/编辑一个特定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";
}
答案 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:
变得可见时将再次调用它。用您指定的任何内容覆盖此更改。
您需要在此之后更新数据模型,以便更改是永久性的