Я встраиваю функции поиска в свое приложение, которое состоит в основном из UITableViews. Я успешно добавил панель поиска и могу правильно искать элементы, но когда я устанавливаю controller.dimsBackgroundDuringPresentation = false
, все становится странно. Проблема в том, что я хочу, чтобы это логическое значение было ложным, поскольку пользователи должны иметь возможность прокручивать результаты и выбирать результат, чтобы увидеть более подробную информацию.
Поведение, которое я вижу, следующее: панель поиска никогда не закрывается, если вы не нажмете кнопку Cancel
, что означает, что когда я выбираю ячейку в своем табличном представлении, чтобы показать сведения об этой ячейке, панель поиска переносится в это представление как таковое:
Я инициализирую свой контроллер поиска следующим образом:
self.searchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.hidesNavigationBarDuringPresentation = false
controller.searchBar.searchBarStyle = .Minimal
controller.delegate = self
self.tableView?.tableHeaderView = controller.searchBar
return controller;
})()
и хотя сам поиск работает (вызывается updateSearchResultsForSearchController
, я применяю свой поиск и возвращаю массив и т. д.), я никак не могу использовать поиск, так как, если я выбираю ячейку во время поиска, происходит приведенная выше картина, но если я нажму отмену, то мой поиск будет очищен. Любая помощь будет оценена по достоинству.