Ho un'applicazione con UITableView. Questo UITableView è popolato da un NSMutableArray trattenuto (come proprietà) nell'appDelegate. Puoi pensare a questo come una finestra di posta elettronica. Elenca i messaggi in una sottoclasse UITableViewCell. Quando viene visualizzato un nuovo messaggio, ho eseguito tutto il codice che scarica il messaggio, aggiunge i dati all'app NSegutableArray dell'appDelegate che contiene tutti i messaggi. Questo codice funziona correttamente.Cosa c'è in [UitableView reloadData]?
Ora, una volta che il nuovo messaggio è stato scaricato e aggiunto all'array, sto cercando di aggiornare il mio UITableView usando il seguente codice, tuttavia - le funzioni delegate di UITableView non vengono chiamate.
La cosa strana è quando faccio scorrere UITableView su e giù, i metodi delegati vengono finalmente chiamati e le intestazioni di sezione DO cambiano (mostrano il numero di messaggi per quella sezione). Non si aggiornano in tempo reale e non aspettano il mio scorrimento per attivare l'aggiornamento? Inoltre, la nuova cella non viene mai aggiunta nella sezione !!
Please Help !!
CODICE AppDelegate:
[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];
}
Codice 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
}
Amico Sento il tuo dolore, lo stesso problema qui. –