Я использую UISearchBar UISearchController в заголовке UITableView. Мой поиск работает нормально, когда я ввожу какой-либо текст в поле панели поиска, вызываются все соответствующие методы, и табличное представление показывает правильные результаты поиска, как и ожидалось.
Проблема возникает, когда я хочу нажать на один из результатов, чтобы что-то с ним сделать. Как только я нажимаю на одну из ячеек табличного представления, поле в строке поиска становится пустым. Поскольку текст поиска теперь пуст, результаты поиска обновляются, а табличное представление перезагружается с нулевыми результатами. Таким образом, нажатие на ячейку таблицы ничего не делает, потому что ячейка таблицы больше не существует.
Я могу обойти большую часть этой проблемы, обновив мой метод updateSearchResultsForSearchController:, чтобы он не обновлял результаты поиска, когда строка поиска пуста. И это прекрасно работает. Но в любом случае я все же хочу, чтобы искомый текст оставался в поле поиска, и в этом суть моего вопроса...
Почему мой поисковый текст исчезает из поля поиска и как я могу предотвратить опустошение поля поиска, когда я нажимаю в другом месте?
Вот как я настроил панель поиска и контроллер поиска:
- (void)viewDidLoad {
[super viewDidLoad];
searcher = [[UISearchController alloc] initWithSearchResultsController:nil];
searcher.searchResultsUpdater = self;
searcher.delegate = self;
searcher.definesPresentationContext = YES;
resultsTable.tableHeaderView = searcher.searchBar;
РЕДАКТИРОВАТЬ: я заметил, что ячейки табличного представления затемнены, а панель поиска имеет фокус. Поэтому я думаю, что контроллер поиска фиксирует все прикосновения и, возможно, обрабатывает их как действия «отмены». Если да, то как остановить его отмену таким образом?