2

J'ai un UISearchDisplayController qui est correctement connecté dans Interface Builder.UISearchDisplayController n'affiche aucune cellule

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

Quand mon UITableView appelle numberoOfRowsInSection: le nombre correct est retourné.

Cependant, mes cellules cellForRowAtIndexPath: n'atteignent même pas:

- (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 { ... } 

Il va toujours à la condition d'autre.

Je ne sais pas trop pourquoi.

Répondre

1

J'avais besoin de créer une instance d'un UISearchDisplayController au lieu d'utiliser self.searchDisplayController.

0

Il s'agit d'une conjecture à partir de ce point sur le code, mais regardons-nous le contrôleur d'affichage de recherche lui-même? Peut-être que votre self.searchDisplayController.searchResultsTableView devrait juste être self.searchResultsTableView.

Je ne peux pas être sûr sans connaître vos délégués.

+0

Je crois que oui, parce que ce code est dans une sous-classe UITableViewController. self.searchResultsTableView n'est pas une propriété dans un UITableViewController. –

+0

J'ai modifié mon message pour montrer comment les délégués sont branchés au BI. –

1

utilisez les éléments suivants. Ça devrait marcher.

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

vous devez également vous assurer que le résultat de recherche nombre de lignes est correct comme dans:

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

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

Cela ne fonctionne pas –

Questions connexes