2011-12-07 10 views
14

Ho usato Xcode 4.2 per creare un'applicazione iOS basata su storyboard. Uno dei miei schermi contiene un UITableViewController, che utilizza celle dinamiche personalizzate.Utilizzo di UITableViewCell personalizzato dinamico in XCode 4.2, con Storyboard e UISeachDisplayController

Finora, tutto bene.

Ora, volevo aggiungere un UISearchDisplayController per consentire il filtraggio del mio elenco.

Per qualche ragione, l'UISearchDisplayController non visualizzerà le mie cellule personalizzati, e non riesco a trovare un modo per forzarlo ...

Questo è ciò che il mio metodo cellForRowAtIndexPath sembra:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *CellIdentifier = @"QueueListCell"; 
    QueueListTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[QueueListTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle 
              reuseIdentifier:CellIdentifier]; 
    } 
    assert(cell); 

    if ([tableView isEqual:self.searchDisplayController.searchResultsTableView]) { 
     indexPath = [_indexPathsForSearchResults objectAtIndex:indexPath.row]; 
    } 

    // Set up the cell... 
    NSDictionary* itemDict = [_ListItems objectAtIndex:indexPath.row]; 

    cell.labelQueueName.text = [itemDict objectForKey:kQueueName]; 
    cell.labelQueueNumItems.text = [[itemDict objectForKey:kQueueNumItems] stringValue]; 

    return cell;  
} 

Qualche idea su come farlo funzionare? Voglio dire, la mia tabella UISearchDisplayController mostra il numero corretto di risultati (lo so dato che posso cliccarci sopra e ho aggiunto un NSLog per farmi sapere cosa sto facendo clic ...)

Questo è il mio vista tabella This is my table view

Questo è come la tabella di visualizzazione di ricerca sembra ... This is how the search display table looks like...

il mio problema/domanda è come rendere la visualizzazione della tabella UISearchDisplayController mostrare le mie cellule personalizzati?

Qualsiasi aiuto apprezzato ...

Reuven

+0

si può sempre controllare la differenza con il confronto di riferimento di tableView. –

+0

nota il mio problema è che per qualche motivo searchResultsTableView non visualizza le celle dei miei clienti. Ecco cosa sto cercando di risolvere (vedi le immagini che ho aggiunto al post) – Reuven

risposta

27

risposta specifica per interrogare

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
} 

Per esempio completo, hanno la sample code from apple's site.

Step by step illustration

+2

Spark, sei il mio eroe! :-) così, così, così frustrante. Eppure, così così semplice ed elegante da risolvere! GRAZIE! – Reuven

+1

Grazie! Sono stato alle prese con questo per ore. –

+1

quindi qual era il problema? – ladookie

Problemi correlati