Dos maneras de hacerlo: haga lo que sugiera, haga una "celda sin resultados" y tenga un estado en su tableViewController que sea BOOL resultIsEmpty = YES. En cellForRowAtIndexPath primero prueba este BOOL vacío y devuelve solo la celda sin resultado, recuerde también marcar en numberOfRintsInSection para que pueda devolver 1 en el caso de que esté vacío (de lo contrario, probablemente devolverá la longitud de la matriz del modelo que, por supuesto, 0).
La otra forma es hacer un recuadro y en la vista de tabla y colocar allí su etiqueta. Esto se puede hacer porque UITableView es una subclase de UIScrollView.
self.tableView.contentInset = UIEdgeInsetsMake(heighOfNoResultLabel, 0, 0, 0);
Luego, en el "resultsDidLoad" o lo que su delegado para los nuevos datos se llama, se prueba si es 0 y la inserción tableView y colocar una etiqueta allí. Si no es 0, configure la inserción en
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
todos los 0. Puede animar esta propiedad para que cuando no haya resultados, la vista de tabla se "desplace" hacia abajo para mostrar la etiqueta "Sin resultados".
Las soluciones de Bot son válidas, diría, aproximadamente la misma cantidad de código. La diferencia es probablemente lo que puedes hacer después.
¿pondría 2. en el viewDidLoad? Gracias. –
@ K.Honda, lo siento, he editado mi respuesta. – EmptyStack
Hola Simon, cuando pongo 2. en _cellForRowAtIndexPath_, obtendré 2 errores de identificador no declarado para _noResultsToDisplay_ y _numberOfRowsInSection_. ¿Sabes por qué? Gracias. –