Как вы ссылаетесь на UISearchController с помощью раскадровки
Я добавил панель поиска и контроллер отображения поиска (предполагая, что это то, что я добавляю в раскадровку, так как у них нет объекта "SearchController", чтобы вытащить).
Моя проблема заключается в том, как я могу установить свойства на этом SearchController сейчас? сам.searchController не работает, и Xcode говорит, что он автоматически добавляется, когда я добавляю UISearchBar в представление. Что я делаю не так? Причина, по которой мне нужен доступ, заключается в том, что я могу установить таблицу поиска результатов, например:
UITableViewController *searchResultsController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
searchResultsController.tableView.dataSource = self;
searchResultsController.tableView.delegate = self;
self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchResultsController];
self.searchController.searchResultsUpdater = self;
Я заметил пример здесь: https://github.com/dempseyatgithub/Sample-UISearchController
Который говорит, что он использует раскадровки, на самом деле не использует раскадровки для добавления в UISearchController, но использует код, выделяя и инициализируя и устанавливая фрейм.
2 ответа:
При перетаскивании строки поиска и объекта Display controller в табличное представление автоматически добавляется IBOutlet searchDisplayController, а не searchController. Он также устанавливает источник данных и делегат для вас.
Важно: UISearchDisplayController устарел в iOS 8. (Обратите внимание, что UISearchDisplayDelegate также не рекомендуется.) Для управления представлением строки поиска и отображения результатов поиска в iOS 8 и более поздних версиях вместо этого используйте UISearchController.
Как уже упоминалось в официальном документе doc, было бы лучше прекратить добавлять старый стиль UISearchDisplayController в приложения, ориентированные на iOS 8.0+. Но похоже, что они не удалили старую из библиотеки UI Controller в Xcode6. 1. Они новый UISearchController также не добавлен. Давай подождем следующего патча.
Но вы все равно можете добавить новый код:
_searchController=[[UISearchController alloc] initWithSearchResultsController:self];