UITableView reloadData автоматически вызывает resignFirstResponder

У меня есть этот UITableView с настраиваемыми ячейками, которые могут получать только предопределенные значения, поэтому я использую UIPickerView в качестве inputView. Все хорошо, пока я не отредактирую поле и не покажу его обновленное значение.

Чтобы упростить работу и упростить обслуживание, я сделал делегатов и источники данных отдельными классами и использовал уведомления, чтобы заставить их взаимодействовать с tableView. Итак, после того, как значение было выбрано из UIPickerView, источник данных tableView получает уведомление и, в свою очередь, уведомляет основной ViewController, который содержит ссылку на tableView. Оттуда я вызываю

[_tableView reloadData];

, и все вроде работает, за исключением того, что UIPickerView исчезает, я думаю, потому что ячейки регенерируются и где-то вызывается какой-то resignFirstResponder или что-то в этом роде. Есть ли другой способ заставить tableView обновлять свои значения без необходимости реализации специального метода где-нибудь, который это делает, что было бы довольно уродливо?

42
задан bneely 25 July 2014 в 01:33
поделиться