Si vous êtes à l'aide personnalisée TableViewCells, le générique
[self.tableView reloadData];
n'est pas efficace pour répondre à cette question , sauf si vous quittez le point de vue actuel et de revenir. Ni la première réponse.
Pour réussir à recharger votre premier tableau de l'affichage de la cellule 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 suite de l'actualisation de la méthode qui appelle à la méthode ci-dessus de sorte que vous pouvez recharger seulement le haut de la cellule (ou de l'ensemble de la vue de la table 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és, à l'intérieur de votre viewDidLoad ajouter les éléments suivants:
//refresh table view
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:refreshControl];
Vous avez maintenant un rafraîchissement personnalisé de la table, qui va recharger la cellule d'en haut. Pour recharger la totalité de la table, ajouter le
[auto.tableView reloadData]; à votre nouvelle méthode d'actualisation.
Si vous souhaitez recharger les données chaque fois que vous changer de vue, de mettre en œuvre la méthode:
//ensure that it reloads the table view data when switching to this view
- (void) viewWillAppear:(BOOL)animated{
[self.tableView reloadData];
}