2009-03-19 13 views

Respuesta

34

Llamar al método reloadData actualiza los datos tan pronto como se invoca el método. No espera a que se desplace la tabla. Asegúrese de que la fuente de datos (matriz o diccionario o donde haya guardado los valores) se cambie antes de llamar al reloadData.

+7

no parece funcionar con una célula de vista de tabla personalizada. Los datos no cambian hasta que se desplaza la vista de tabla. Quizás tengo un error en mi método de celda de vista de tabla personalizada. – Genericrich

+1

También uso una celda personalizada. Funciona muy bien para mi Debes haber perdido algo en el código. Puedes publicar el código tal vez podamos encontrar algo – lostInTransit

+2

Si está usando un archivo nib para diseñar su vista, no olvide conectar la tabla que está llamando a reloadData en el código de la tabla en su plumín. Sucede fácilmente ya que también necesita conectar el delegado y el origen de datos. –

33

¿Está refrescando los datos del hilo principal? Si es así, es necesario llamar al método reloadData utilizando el siguiente método:

- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait

Así que para una tableView sería:

[tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];

19

Sólo una actualización de 2013, también debe ser capaz de recargar los datos, al igual que siempre y cuando se utiliza

dispatch_async(dispatch_get_main_queue(), ^{ 
    [self.tableView reloadData]; 
}); 

GCD es increíble!

+0

Esta debería ser la respuesta aceptada. Si esperaba que ReloadData simple realmente actualice la IU sin ningún tipo de interacción, esta es la manera de hacerlo ... – Markus

+0

¿Puede explicar mejor por qué debería ejecutarse en el hilo principal? – jchnxu

-5

El siguiente código ayuda que vuelva a cargar la tabla, mientras que en busca de que:

[self.tableView reloadData]; 
+4

Mala práctica para llamar a esos métodos – AlexeyVMP

Cuestiones relacionadas