Si vous utilisez des TableViewCells personnalisées, le générique
[self.tableView reloadData];
ne répond pas efficacement à cette question sauf si vous quittez la vue actuelle et y revenez. La première réponse non plus.
Pour recharger correctement votre première cellule de vue de tableau sans changer de vue , utilisez le code suivant:
//For iOS 5 and later
- (void)reloadTopCell {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
NSArray *indexPaths = [[NSArray alloc] initWithObjects:indexPath, nil];
[self.tableView reloadRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone];
}
Insérez la méthode d'actualisation suivante qui appelle la méthode ci-dessus afin que vous puissiez recharger uniquement la cellule supérieure (ou la vue de tableau entière si vous le souhaitez):
- (void)refresh:(UIRefreshControl *)refreshControl {
//call to the method which will perform the function
[self reloadTopCell];
//finish refreshing
[refreshControl endRefreshing];
}
Maintenant que vous avez trié, à l'intérieur de votre viewDidLoad
ajoutez ce qui suit:
//refresh table view
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:refreshControl];
Vous disposez désormais d'une fonction de table d'actualisation personnalisée qui rechargera la cellule supérieure. Pour recharger la table entière, ajoutez le
[self.tableView reloadData];
à votre nouvelle méthode d'actualisation.
Si vous souhaitez recharger les données à chaque fois que vous changez de vue, implémentez la méthode:
//ensure that it reloads the table view data when switching to this view
- (void) viewWillAppear:(BOOL)animated {
[self.tableView reloadData];
}
[NSArray arrayWithObject:]
place.