Я изменил код примера проекта iOS для Apple TableSearch, чтобы использовать его для поиска в webservice путем анализа его содержимого. Все, что я реализовал, отлично работает, за исключением одной уродливой детали при выполнении поиска, используя SearchBar SearchDisplayController. Я изменил поведение SearchDisplayController, чтобы он сначала вызывал мою функцию поиска, когда была нажата кнопка «Поиск».Перезагрузка/Отображение searchResultsTableView UISearchDisplayController после завершения итерации метода поиска
Проблема заключается в том, что, когда итерация поиска (выполняемая в фоновом режиме в NSOperationQueue) завершена, «searchResultsTableView» (of searchDisplayController) не отображается автоматически или не назначается результирующее содержимое. Если вы затем измените текст SearchBar или коснитесь кнопки «Отмена» в представлении, которое появляется при касании поля поиска (см. TableSearch), появляется правильный TableView с результатами поиска. Я просто хочу, чтобы этот шаг выполнялся сразу после завершения операции поиска, поэтому перед тем, как вы начнете взаимодействовать. На этом этапе в настоящее время отображается метка «Нет результатов». Методы «filterContentForSearchText» и «shouldReloadTableForSearchString» не изменяются от исходного проекта TableSearch.
Я просмотрел различные ссылки на классы SearchDisplayController и его атрибуты, но пока не нашел окончательного решения.
Я пробовал следующее в разделе, который определенно повторяется после завершения NSOperation, но он, похоже, не решает проблему.
[self.searchDisplayController.searchResultsTableView removeFromSuperview];
и
self.searchDisplayController.searchResultsTableView.hidden = YES;
Эти операции оба имеют правильное представление Я хочу отображается, но прокрутка отключена, пока вы не измените состояние, так что вид скрыт снова. Однако можно выбрать элементы TableView. Я в основном хочу иметь это только с включенной прокруткой ...
Заранее благодарим за ваши усилия!
У вас есть метод shouldReloadTableForSearchString реализован в вашей реализации для делегат UISearchDisplayController? –
Спасибо за ваш комментарий! Да, у меня есть, метод shouldReloadTableForSearchString не изменяется от исходной версии Apple, иначе я бы разместил измененный код. Я совершенно уверен, что я не изменил никаких решающих методов в этом вопросе. Ни "filterContentForSearchText". – John