2012-08-03 20 views
5

Esto es extremadamente frustrante: estoy tratando de mostrar los resultados no filtrados en un UISearchDisplayController incluso si la cadena de búsqueda está vacía.Mostrar UISearchDisplayTableView cuando la cadena de búsqueda está vacía

Adición de código de depuración a numberOfSectionsInTableView: y numberOfRowsInSection: muestra que cuando mi cadena de búsqueda está vacío, se devuelven enteros distintos de cero, pero nunca se cellForRowAtIndexPath: se llama! La vista de tabla parece estar oculta.

Intenté configurar tableview.hidden=NO; en searchDisplayController:(UISearchDisplayController *)controller didHideSearchResultsTableView:(UITableView *)tableView en vano.

Esto no puede ser tan difícil de lograr, ¡me imagino que esto es algo muy común de hacer!

Respuesta

2

Bueno, la solución a esto es no usar el UISearchDisplayController. Simplemente no ofrece la flexibilidad que necesita para hacer algo como esto. Cree su propia interfaz de búsqueda personalizada con UISegmentedControl, UISearchBar y UITableView para la máxima flexibilidad.

2

Lo que puede hacer es cuando el usuario hace clic en la búsqueda y la cadena es el cambio vacía la searchBartext a "\ n" retorno de carro

self.searchDisplayController.searchBar.text = @"\n"; 

El retorno de carro no se muestra en la barra de búsqueda de una También se no ser la misma cadena, como si el usuario escribe "\ n". así que funciona bien En el método

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString 

puede ajustar la barra de búsqueda de texto de nuevo a @ "". si el searchstring fue @ "\ n"

self.searchDisplayController.searchBar.text = @""; 

¡Eso funcionó para mí!

+0

cada vez que configuro self.searchDisplayController.searchBar.text = @ ""; en el shouldReloadTableForSearchString no funciona. Quería hacer eso para poder ver el texto de mi marcador de posición. ¿Alguna idea? – DonnaLea

+0

Debo haber estado medio dormido, porque funciona ahora. Yay – DonnaLea

+0

Cuando tenga '" "' texto vacío, se eliminará el texto del marcador de posición. @DonnaLea, podría explicar cómo funcionó para usted – Sategroup

4

Sé que esta es una publicación anterior, pero tuve el mismo problema con el nuevo iOS8 UISearchController. La solución consiste en comprobar si la cadena está vacía y establecer la propiedad de la tabla de resultados del resultado HIDDEN = NO

+0

Tuve el mismo problema, pero la propiedad oculta de mi tabla de resultados siempre es igual a NO. – Allen

Cuestiones relacionadas