2

У меня есть UISearchDisplayController, который правильно подключен в Interface Builder.UISearchDisplayController не отображает никаких ячеек

delegate = Files Owner 
searchBar = Search Bar 
searchContentsController = Files Owner 
searchResultsDataSource = Files Owner 
searchResultsDelegate = Files Owner 

Когда мой UITableView называет numberoOfRowsInSection: правильный номер возвращается.

Однако мои клетки в cellForRowAtIndexPath: не достигает даже:

- (UITableViewCell *)tableView:(UITableView *)tblView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

if (tblView == searchController.searchResultsTableView){ 
    NSLog(@"search will go here"); 
    UITableViewCell* cell = [self provideSearchQueryCells:tblView identifer:@"searchQueryCell"]; 
    STSymbol *aSymbol = [self.searchQueryResults objectAtIndex:indexPath.row]; 

    cell.textLabel.text = aSymbol.symbol; 
    cell.detailTextLabel.text = aSymbol.symbol_title; 

    return cell; 
} 
else { ... } 

Он всегда идет в состояние другого.

Я не совсем уверен, почему.

ответ

1

Мне нужно было создать экземпляр UISearchDisplayController вместо использования self.searchDisplayController.

0

Это предположение от этого близко к коду, но мы смотрим на контроллер отображения поиска сам? Возможно, ваш self.searchDisplayController.searchResultsTableView должен быть только self.searchResultsTableView.

Я не могу быть уверен, не зная своих делегатов.

+0

Я считаю, что это так, потому что этот код в подклассе UITableViewController. self.searchResultsTableView не является свойством в UITableViewController. –

+0

Я изменил свой пост, чтобы показать, как делегаты подключены в IB. –

1

используйте следующее. Он должен работать.

if ([tblView isEqual:[searchController searchResultsTableView]]) { 
... 
} 

вы также должны убедиться, что счетчик результаты поиска строки правильно, как в:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 

    if ([tblView isEqual:[searchController searchResultsTableView]]) { 
     return [self.searchResults count]; 
    } 
... 
} 
+0

Это не работает –

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