我正在使用willSelectRowAtIndexPath
委托方法更改所选单元格的detailTextLabel
,即我将\U0001F44D
分配给所选单元格的detailTextLabel.text
并指定{{ 1}}到先前选择的单元格,问题是前一个单元格被分配@""
但@""
没有出现在新选择的单元格上,代码如下:
\U0001F44D
答案 0 :(得分:2)
永远不要像这样直接更改单元格内的任何值。更改模型(基础数据),然后在选择发生后(即在runloop完成后),在表上调用reloadData
,以便表获取通过通常方式调用cellForRowAtIndexPath:
来获取正确的新值。
答案 1 :(得分:-1)
你应该使用DidSelectRowAtIndexPath而不是WillSelectRowAtIndexPath
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSIndexPath *index = [NSIndexPath indexPathForRow:self.selectedCalcMethod inSection:0]; // index of previously selected cell
[self.mainTable cellForRowAtIndexPath:index].detailTextLabel.text=@"";
[self.mainTable cellForRowAtIndexPath:indexPath].detailTextLabel.text =@"\U0001F44D";
return indexPath;
}