UITableView通知UITableViewCell重新加载

时间:2012-12-21 10:25:38

标签: uitableview reloaddata

以下是情况的简短摘要:

我有一个包含许多单元格的TableViewController。 在其中一个单元格中,我有一个UITextField。此单元格是自定义UITableViewCell类。此类实现UITextFieldDelegate协议和方法textFieldDidEndEditing: 在方法textFieldDidEndEditing:中,我将TextField的值存储到CoreData中。

这一切都很有效。

我的问题与重新加载TableView有关:

在用户执行某些操作后,我通过调用[self.tableView reloadData]重新加载UITableView的数据 如果,当我调用此方法时,上面提到的TextField是第一个响应者,将调用textFieldDidEndEditing:方法,导致我的CoreData相关代码执行。

重新加载TableView时,我不希望自定义TabelViewCell完全执行任何操作。 有没有办法,TableViewCell可以知道正在重载的TableView?我可以在textFieldDidEndEditing:方法中检查这个吗?

与此同时,我已通过以下方式解决了这个问题:

当创建这个TableViewCell时,我让ViewController存储对它的引用。 在致电[self.tableView reloadData]之前,我首先通过设置自定义属性_cell.tableWillReload = YES来通知Cell 我将在textFieldDidEndEditing:方法中检查此属性。

我想也许有一种不同的,更默认的方式,TableViewCells知道aroundTableView正在重新加载?

1 个答案:

答案 0 :(得分:0)

试试这个: -

[yourTextFieldOfCell resignFirstResponder];

在致电[self.tableView reloadData];

之前