Tengo una aplicación que tiene una UITableView. Este UITableView está poblado por un NSMutableArray que se mantiene (como una propiedad) en la aplicaciónDelegate. Puedes pensar en esto como una ventana de correo electrónico. Enumera los mensajes en una UITableViewCell subclasificada. Cuando aparece un nuevo mensaje, tengo todo el código hecho que descarga el mensaje, agrega los datos al NSMutableArray de appDelegate que contiene todos los mensajes. Este código está funcionando bien.¿Qué pasa con [UITableView reloadData]?
Ahora, una vez que se descarga el nuevo mensaje y se agrega a la matriz, estoy tratando de actualizar mi UITableView usando el siguiente código, sin embargo, las funciones de delegado de UITableView no se llaman.
Lo curioso es cuando desplazo mi UITableView hacia arriba y hacia abajo, finalmente se llaman los métodos de delegado y mis encabezados de sección SI cambian (muestran el recuento de mensajes para esa sección). ¿No se actualizan en tiempo real y no esperan a que mi desplazamiento desencadene la actualización? ¡Además, la nueva celda nunca se agrega en la sección!
Por favor ayuda !!
AppDelegate CÓDIGO:
[self refreshMessagesDisplay]; //This is a call placed in the msg download method
-(void)refreshMessagesDisplay{
[self performSelectorOnMainThread:@selector(performMessageDisplay) withObject:nil waitUntilDone:NO];
}
-(void)performMessageDisplay{
[myMessagesView refresh];
}
Código UITableViewController:
-(void) refresh{
iPhone_PNPAppDelegate *mainDelegate = (iPhone_PNPAppDelegate *)[[UIApplication sharedApplication] delegate];
//self.messages is copied from appDelegate to get (old and) new messages.
self.messages=mainDelegate.messages;
//Some array manipulation takes place here.
[theTable reloadData];
[theTable setNeedsLayout]; //added out of desperation
[theTable setNeedsDisplay]; //added out of desperation
}
Amigo Siento su dolor, el mismo problema aquí. –