Беглый взгляд на UISearchDisplayController Class Reference
ответил бы на ваш вопрос.
"Обычно вы инициализируете контроллер отображения поиска из контроллера представления (обычно это экземпляр UITableViewController)это отображает список. Чтобы выполнить настройку программно, установите self
для контроллера представления контроллера отображения, источника данных и делегата результатов поиска. "
Таким образом, это должно выглядеть так:
searchController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
searchController.delegate = self;
searchController.searchResultsDataSource = self;
searchController.searchResultsDelegate = self;
Если вы следуете этому шаблону, то в источнике данных табличного представления и методах делегата вы можете проверить аргумент табличного представления методов, чтобы определить, какое табличное представление отправляет сообщение:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == self.tableView)
{
return ...;
}
// If necessary (if self is the data source for other table views),
// check whether tableView is searchController.searchResultsTableView.
return ...;
}