2016-05-27 2 views
0

Я искал учебники по UISearchController и все они реализованы таким образом:iOS - Как добавить UISearchController.searchBar к контроллеру без UITableView?

├── MainTableViewController(UITableViewController*) 
   ├── SearchController(UISearchController*) 
   └── ResultTableViewController(UITableViewController*) 

В Таким образом, SearchController.searchBar может отображаться в верхней части представления просто

MainTableViewController.tableView.tableHeaderView = SearchController.searchBar;

Как добавить searchBar в верхнюю часть контроллера , который не является UITableViewController?

+0

Добавить UISearchbar в качестве заголовка таблицы. Не смешивать UISearchbar с UISearchController. –

+0

Вы можете добавить UISearchbar и uitableview в UIViewController. –

ответ

0

В своем раскадровке выберите свой viewController и откройте утилиты (значок в правом верхнем углу) и найдите UISearchBar. Теперь перетащите UISearchBar в свой viewController и установите фрейм/ограничения. И сделайте coonection для добавления searchbar к вашему классу viewController.

В стороне вашего класс ViewController установить делегат для панели поиска

override func viewDidLoad() 
{ 
    super.viewDidLoad() 
    searchBar.delegate = self   
} 

Теперь реализовать searchBar:textDidChange метод

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) 
{ 

} 
+0

Да, я знаю, что есть 'UISearchBar', который я могу использовать. Но то, что меня смутило, на самом деле состоит в том, что 'UISearchController' уже имеет свойство' searchBar'. Если я создаю 'UISearchBar', тогда будет два' UISearchBar'. Я хочу, чтобы всплывать представление таблицы результатов, когда пользователь печатает. Как это сделать? –

+0

здесь нет необходимости использовать UISearchController, просто используйте UISearchBar и, используя метод делегата, фильтруйте результаты и представляйте tableViewController, передав эти отфильтрованные результаты – raki

0

Это прекрасно работает без представления таблицы. Экземпляру UISearchDisplayController нужен ресурс searchResultsDatasource и делегат, который на самом деле является источником данных UITableView и делегатом.

Поскольку эти реализации присутствуют в UITableViews, они часто используются повторно как реализации для контроллера поиска, но это не обязательно так.

+1

Но Apple рекомендует использовать 'UISearchController', а' UISearchDisplayController' устарел в iOS8. –

Смежные вопросы