Я использую UISearchDisplayController, чтобы иметь возможность отображать таблицу с пользовательскими ячейками на основе некоторых данных, которые я получаю с сервера.
Сначала я установил UISearchDisplayController внутри моего UIViewController.
self.searchController = [[UISearchDisplayController alloc]
initWithSearchBar:self.mySearchBar contentsController:self];
self.searchController.delegate = self;
self.searchController.searchResultsDataSource = self;
self.searchController.searchResultsDelegate = self;
Мой UIViewController также реализует UISearchBarDelegate, поэтому я могу определить, когда начинается поиск. Я настроил блок так, что когда мой вызов API возвращается, он вызывается и словарь результатов сохраняется в свойстве self.searchResults:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
// here we make the api call
[api getSomeInfo:searchBar.text complete:^(NSDictionary *json) {
self.searchResults = json;
[self.searchController.searchResultsTableView reloadData];
}];
}
Теперь у меня проблема в том, что в моем методе UITableViewDataSource я возвращаю пользовательскую ячейку. Моя ячейка создается, но ее IBOutlets никогда не инициализируются, поэтому я не могу правильно настроить их содержимое (текст, изображения и т. Д.):
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView == self.searchController.searchResultsTableView) {
cell = [tableView dequeueReusableCellWithIdentifier:@"SearchResultsCellIndentifier"];
if (cell == nil) {
cell = [[SearchResultsCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
cell.customLabel.text = [self.searchResults objectForKey:@"customText"]; // cell exists but cell.customLabel is nil!!
}
}
Почему контент ноль? Есть ли где-то в моем классе Custom Cell, где я должен настраивать содержимое?
Спасибо!