Ios 按标记编辑UITableViewCell
我一直在试图找到一个简单的答案,我认为有些事情不应该那么难,但我要么找不到一个像样的答案,要么就是我的脑袋绕不过去 我正在尝试更改/编辑一个特定tableview单元格的文本标签内容。因此,出于示例的考虑,我希望在UITableView之外但在同一视图控制器中使用Ios 按标记编辑UITableViewCell,ios,objective-c,uitableview,tags,Ios,Objective C,Uitableview,Tags,我一直在试图找到一个简单的答案,我认为有些事情不应该那么难,但我要么找不到一个像样的答案,要么就是我的脑袋绕不过去 我正在尝试更改/编辑一个特定tableview单元格的文本标签内容。因此,出于示例的考虑,我希望在UITableView之外但在同一视图控制器中使用UIButton,以更改第2行中的文本,同时保持其他文本不变 我知道您使用了带标签的视图,但除此之外,我无法理解这一点!请帮忙 这是到目前为止我的代码 -(UITableViewCell *)tableView:(UITableView
UIButton
,以更改第2行中的文本,同时保持其他文本不变
我知道您使用了带标签的视图
,但除此之外,我无法理解这一点!请帮忙
这是到目前为止我的代码
-(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";
}
不要使用
viewWithTag
,请使用下面的获取单元格的引用
-(void)buttonPressed:(UIButton *)button
{
EntryCell *cell = (EntryCell *)[tblView cellForRowAtIndexPath: [NSIndexPath indexPathForRow:2 inSection:0]];
if(cell != nil)
{
cell.mainLabel.text = @"goodbye";
}
}
编辑
正如david指出的,如果该单元格不可见,则会覆盖该值,因为当它可见时,将再次调用cellforrowatinexpath:
。用您指定的内容覆盖此更改
在此之后,您需要更新数据模型,以便更改是永久性的请注意,只有当从CellForRowatineXpath请求的单元格当前可见时,此操作才有效。问题不仅仅在于它将被覆盖。CellForRowatineXpath:对于当前不可见的单元格返回nil。@David啊,是的,那么编辑就开始了,数据模型应该更新为不可见的行,因为它将在
CellForRowatineXpath
中“更新”,我将添加一个nil复选框非常感谢!这太简单了。它与默认的textLabel一起工作,但我正在努力使它与我的自定义单元格文本一起工作。没错,尽管在这一点上,我的方法是更新模型,然后使用重载行使单元格无效。我讨厌在多个地方使用相同的代码:)