Se você estiver usando TableViewCells personalizados, o genérico
[self.tableView reloadData];
não responde efetivamente a essa pergunta, a menos que você saia da visualização atual e volte. Nem a primeira resposta.
Para recarregar com êxito sua primeira célula de exibição de tabela sem alternar exibições , use o seguinte código:
//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];
}
Insira o seguinte método de atualização, que chama o método acima, para que você possa recarregar apenas a célula superior (ou a visualização da tabela inteira, se desejar):
- (void)refresh:(UIRefreshControl *)refreshControl {
//call to the method which will perform the function
[self reloadTopCell];
//finish refreshing
[refreshControl endRefreshing];
}
Agora que você ordenou isso, dentro do seu viewDidLoad
adicione o seguinte:
//refresh table view
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:refreshControl];
Agora você tem um recurso personalizado da tabela de atualização que recarregará a célula superior. Para recarregar a tabela inteira, adicione o
[self.tableView reloadData];
ao seu novo método de atualização.
Se você deseja recarregar os dados toda vez que alternar as visualizações, implemente o método:
//ensure that it reloads the table view data when switching to this view
- (void) viewWillAppear:(BOOL)animated {
[self.tableView reloadData];
}
[NSArray arrayWithObject:]
.