Вот краткое описание ситуации:
У меня есть TableViewController с несколькими ячейками. В одной из ячеек у меня есть UITextField. Эта ячейка относится к пользовательскому классу UITableViewCell. Этот класс реализует протокол UITextFieldDelegate и метод textFieldDidEndEditing:
В методе textFieldDidEndEditing:
я сохраняю значение TextField в CoreData.
Все это отлично работает.
Мой вопрос касается перезагрузки TableView:
После определенных действий пользователя я перезагружаю данные UITableView, вызывая [self.tableView reloadData]
Если, когда я вызываю этот метод, вышеупомянутый TextField является первым ответчиком, будет вызван метод textFieldDidEndEditing:
, вызывая выполнение моего кода, связанного с CoreData.
Когда TableView перезагружается, я не хочу, чтобы пользовательский TabelViewCell вообще что-либо делал. Есть ли способ, чтобы TableViewCell мог знать о перезагрузке TableView? Так что я могу проверить это в методе textFieldDidEndEditing:
?
Тем временем я решил это следующим образом:
Когда создается этот TableViewCell, я позволяю ViewController хранить ссылку на него. Перед вызовом [self.tableView reloadData]
я сначала информирую Cell, устанавливая пользовательское свойство _cell.tableWillReload = YES
Я проверю это свойство в методе textFieldDidEndEditing:
.
Я подумал, может быть, есть другой, более стандартный способ, чтобы TableViewCells знал, что они окружают TableView, перезагружается?