我有一个正在实例化的UITableViewCell(在“cellForRowAtIndexPath”方法中)
[cell setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton];
当点击“附件按钮”时,我会弹出一个UIDatePicker,它应该将单元格的文本设置为所选的日期。拾取器显示并且我的单元格不是零,但是,在我单击它之前我看不到单元格的实际文本(日期)(单元格,而不是“附件按钮”)。
以下是设置文字的代码:
targetCell.textLabel.text = [formatter stringFromDate:_datePicker.date];
targetCell是在调用方法:“accessoryButtonTappedForRowWithIndexPath”时设置的实例变量。
就像我说的那样,我知道正在单元格中设置文本,因为当我单击实际单元格时,我可以看到选择器中选择的日期。
答案 0 :(得分:1)
您似乎正在尝试直接修改当前显示的表格视图单元格。即使您设法以这种方式更改它,这仍然无法工作,因为当您的行滚出视图时,其相应的单元格将重新用于另一行。因此,您的更改将会丢失,或者您将显示错误的内容。
正确的管理方法是:
-[UITableView reloadData]
或-[UITableView reloadRowsAtIndexPaths:withRowAnimation:]
使用这些方法之一将导致调用表视图数据源-tableView:cellForRowAtIndexPath:
,这将使用新单元格更新行。因此,即使该行滚出视图,也会显示该行的正确日期。