2008-12-07 7 views
14

Soy nuevo en el desarrollo del iPhone y Apple y trabajando en mi primera aplicación. Es simple con solo un TableView y una "vista de detalle" cuando se selecciona un elemento en una tabla.¿Cómo actualizo una vista de tabla después de regresar de una "vista de detalle"?

Lo que quiero hacer es cambiar el color de fondo de la celda de la TableView basado en alguna acción tomada en mi "Ver detalles".

Cuando la aplicación carga inicialmente, personalizo los colores en el método -cellForRowAtIndexPath:, pero cuando el usuario navega desde mi vista detallada no se llama a esa función, por lo que mi vista de tabla no tiene los colores actualizados. La única forma de actualizarlo ahora es salir de la aplicación y volver a iniciarla. (Persistiré su selección con NSUserDefaults.)

Obviamente, quiero que la vista de tabla se actualice cuando vuelvan de la vista de detalles, pero no sé cómo obtener una referencia a una celda y en qué método Para hacer eso. Supongo que debería ir en -viewDidAppear, ya que se llama todo lo que se muestra la vista.

Respuesta

34

Uso [tableView reloadData] - que hará que el tableview plazo, aunque las filas y reconstruirse.

+0

Esto no actualiza la tabla como si fuera a reiniciar la aplicación. ¿Qué es totalmente refrescante como si la aplicación se hubiera iniciado y TableView se acabara de crear? – coolcool1994

9

realmente debería hacer que en viewWillAppear:.

También, usted puede conseguir las celdas visibles de la vista de tabla mediante el uso de su método visibleCells. Debido a la forma de trabajo vistas mesa, otras células no existen en absoluto - desplazamiento desencadenará el método delegado y crear nuevas células (o dequeue las existentes si se utiliza dequeue...).

1

me gustaría añadir que si es en una vista de edición que luego guarda alguna información modificada almacenado en la tabla debe tener un delegado que detecta cuando los datos se guarda realmente vuelva a cargar su tableview. viewWillAppear se activará cada vez que aparezca tu vista. Lo que creo que busca es solo después de que se hayan cambiado los datos, quiere actualizar la tabla.

Cuestiones relacionadas