UITableViewController no volver a dibujar la nueva etiqueta de texto celular después popViewControllerAnimated

StackOverflow https://stackoverflow.com/questions/2189520

Pregunta

Tengo un problemetic UITableViewController no logra volver a dibujar una celda actualizada después de retirar una vista infantil.

Esto es lo que está pasando. Después de cambiar datos en una vista de niño, la vista padre recargas del controlador de la matriz y se ejecuta de datos de origen [tableView reloadData] a través de un PostNotification. Después de esto dispara, yo uso popViewControllerAnimated para volver a la matriz UITableViewController (esto aparece la vista del niño de la pila, y revela el controlador hacia arriba un nivel).

Sin embargo, mis datos actualizados no aparece en el controlador de vista de los padres! De acuerdo con el depurador, el sello de la célula ha sido actualizado, pero la etiqueta visible no cambiar. Sin embargo, si me desplazo-flick la mesa, se mueve momentáneamente la celda actualizada fuera de la vista, cuando vuelve a aparecer la etiqueta se actualiza!

También intente llamar [tableView reloadData] a través de viewWillAppear , pero el problema persiste.

Aquí hay alguna información adicional que pueda ser útil. Tengo unas vistas 3 estructurados de esta manera:

1/  SettingsViewController : UITableViewController
2/  -- UserView : UITableViewController
3/  ---- UserDetailsView : UIViewController <UIActionSheetDelegate>

Estoy llamando desde UserDetailsView UserView dentro de la siguiente manera:

 UserDetailsView *userDetailsView = [[UserDetailsView alloc] init];
 [self.navigationController pushViewController:userDetailsView animated:YES];

Si regreso a la parte superior-más controlador (SettingsViewController) y luego cargar el controlador problemático (UserView), todo se extrae correctamente. Es sólo cuando regresaba de una visión infantil que se produce este problema.

Gracias de antemano por sus sugerencias.

¿Fue útil?

Solución

Por último trabajó éste hacia fuera después de una hora de emparejado de codificación.

Después de un tiempo nos dimos cuenta de que tableView siempre fue nula cada vez que enviamos el mensaje reloadData. Como usted puede saber en Objective C, objetos nulos aceptan cualquier mensaje sin queja.

Resulta que "alguien" (ejem, lo siento que era yo) había definido esta línea en el archivo de cabecera.

 UITableView *tableView;

Ahora, las cookies inteligentes por ahí va a saber que debido a extendemos UITaleViewController, no necesitamos para hacer un puntero a nosotros mismos tableView . En efecto había reemplazado el miembro tableView heredado con un objeto nulo.

Misterio resuelto. Espero que esto ayude a alguien más por ahí también! : D

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top