J'ai un tableView qui doit être mis à jour après que l'information a été insérée à partir d'une autre vue. Si je joue uniPhone SDK: insertion et mise à jour d'un UITableView avec une nouvelle ligne
[self.tableView reloadData];
La très prochaine fois que j'insérer plus d'informations dans une autre vue et essayer de recharger la table, toutes les lignes actuellement visibles sont dupliqués.
En d'autres termes, quand je commence l'application que j'ai:
tableView:
Row 1
Row 2
Puis-je envoyer des informations qui afficheront aussi dans la table et tout à coup je:
tableView
Row 1
Row 2
Row 3 <- info I just added
Row 1
Row 2
Mon la mise en œuvre numberOfRowsInSection ressemble à ceci:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [ItemsController sharedItemsController].count;
}
Ma mise en œuvre de cellForRowAtIndexPath regards comme ceci:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
ItemsController* controller = [ItemsController sharedItemsController];
NSMutableArray* recentItems = controller.listOfRecentItems;
CustomCell *cell = nil;
NSUInteger row = [indexPath row];
if(row < recentItems.count)
{
Items* item = [recentItems objectAtIndex:row];
if(recentCellData == nil)
recentCellData = [[NSMutableDictionary alloc] initWithCapacity:[indexPath length]];
if([recentCellData count] > 0)
cell = [recentCellData objectForKey:[NSString stringWithFormat:@"%d", row]];
if (cell == nil) {
UIViewController * view1 = [[UIViewController alloc] initWithNibName:@"CustomCell" bundle:nil];
cell = (CustomCell*)[view1 view];
[recentCellData setObject:cell forKey:[NSString stringWithFormat:@"%d",row]];
}
// do some other stuff here
}
// Set up the cell
return cell;
}
Quelle est la meilleure façon de mettre à jour la table et éviter de dupliquer les lignes actuellement visibles. Merci d'avance pour toute l'aide!
Il semble que vous ayez besoin d'inclure l'implémentation de votre méthode tableView: numberOfRowsInSection: dans votre question. – dstnbrkr
J'ai ajouté cette information aux questions. Merci! – Jeff