J'ai un UITableView
qui contient un tas d'éléments dont le statut me vient d'une application web chaque fois que la table se charge via une méthode refreshRows
. Après je fais cela, je recharge la table.Recharger les données UITableView sans recharger la vue?
Lorsque j'ai ajouté un élément à ma table, je me suis retrouvé à recevoir un message "Mise à jour invalide: nombre de lignes invalides dans la section". Le rechargement des données dans la table s'est avéré nécessaire, donc j'ai fait le changement de l'ancienne à la nouvelle viewDidAppear
méthodes (les deux montrés ci-dessous). J'ai maintenant deux reloadData
appels, qui à la fois rafraîchir ma vue.
QUESTION: Y a-t-il une façon plus propre de faire cela? Après un ajout j'ai besoin de recharger mes données, mais je préfère ne pas recharger la vue jusqu'à ce que tous les statuts du web soient récupérés.
- (void)viewDidAppear:(BOOL)animated // new
{
NSLog(@"viewDidAppear");
[super viewDidAppear:animated];
[self.tableView reloadData]; // <------------- Prettier way to do this?
[self refreshRows];
[self.tableView reloadData];
}
- (void)viewDidAppear:(BOOL)animated // old
{
NSLog(@"viewDidAppear");
[super viewDidAppear:animated];
[self refreshRows];
[self.tableView reloadData];
}
- (void)refreshRows {
// foreach row get status from webapp
}
EDIT:
Voici le code demandé:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
id <NSFetchedResultsSectionInfo> sectionInfo =
[[self.fetchedResultsController sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
}
pouvez-vous vous poster numberOfRowsInSection méthode? Ajoutez-vous des éléments à la table en utilisant insertRowsAtIndexPaths? l'erreur que vous avez mentionnée est généralement provoquée lorsque vous appelez la méthode insert tableView sans mettre à jour votre modèle. – adamsiton
c'est ce qui se passe ... mais il existe un moyen de recharger le modèle sans recharger la vue? – nflacco