2011-12-07 14 views
14

He usado Xcode 4.2 para crear una aplicación de iOS basada en guiones gráficos. Una de mis pantallas contiene un UITableViewController, utilizando celdas personalizadas dinámicas.Uso de una UITableViewCell personalizada dinámica en XCode 4.2, con Storyboards y UISeachDisplayController

Hasta ahora, muy bien.

Ahora, quería agregar un UISearchDisplayController para permitir el filtrado de mi lista.

Por alguna razón, el UISearchDisplayController no mostrará mis células personalizados, y no puedo encontrar una manera de forzarlo ...

Esto es lo que mi método cellForRowAtIndexPath ve:

- (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;  
} 

¿Alguna idea sobre cómo hacer que esto funcione? Quiero decir, mi tabla UISearchDisplayController NO muestra la cantidad correcta de resultados (lo sé porque puedo hacer clic en ellos y agregué un NSLog para decirme en qué estoy haciendo clic ...)

Este es mi vista de tabla This is my table view

es así como la tabla de visualización de búsqueda parece ... This is how the search display table looks like...

Mi problema/pregunta es cómo hacer que la vista de tabla UISearchDisplayController mostrar mis células personalizados?

Cualquier ayuda apreciada ...

Reuven

+0

siempre se puede comprobar la diferencia mediante la comparación de referencia de tableView. –

+0

tenga en cuenta que mi problema es que, por algún motivo, searchResultsTableView no muestra las celdas de mis clientes. Eso es lo que estoy tratando de resolver (ver imágenes que agregué a la publicación) – Reuven

Respuesta

27

respuesta específica para consultar

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

Por ejemplo completo, tener la sample code from apple's site.

Step by step illustration

+2

¡Chispa, eres mi héroe! :-) entonces, entonces, tan frustrante. ¡Sin embargo, tan simple y elegante de arreglar! ¡GRACIAS! – Reuven

+1

Gracias! He estado luchando con esto por horas. –

+1

¿cuál era el problema? – ladookie

Cuestiones relacionadas