Добавление UISearchController в представление без таблиц


У меня возникли проблемы с использованием нового UISearchController в IOS8. Каждый пример, который я нашел до сих пор, использует строку поиска в качестве представления заголовка UITableView. Что вы делаете, когда строка поиска должна отображаться в другом месте? Например, поместить панель поиска вне таблицы, чтобы предотвратить ее прокрутку? Как насчет использования его с чем-то вроде UICollectionView?

Я что-то упустил? Не думаю, что это должно быть так уж сложно.

1 6

1 ответ:

Поместив UISearchBar в titleView панели навигации, вы можете предотвратить его прокрутку при прокрутке tableview.

self.searchController.hidesNavigationBarDuringPresentation = NO;
self.searchController.searchBar.searchBarStyle = UISearchBarStyleMinimal;

// Include the search bar within the navigation bar.
self.navigationItem.titleView = self.searchController.searchBar;

self.definesPresentationContext = YES;

UISearchController полагается на searchResultsController, который должен быть контроллером вида, управляющим результатами поиска. Убедитесь, что контроллер вида, на который указывает СВОЙСТВО searchResultsController, обновляется на основе текста в UISearchBar, Когда UISearchController активен. Таким образом, Вы можете использовать UISearchController с tableview или collectionview.