Si está utilizando TableViewCells personalizados, el genérico
[self.tableView reloadData];
no responde efectivamente esta pregunta a menos que abandone la vista actual y regrese. Tampoco la primera respuesta.
Para recargar con éxito su primera celda de vista de tabla sin cambiar de vista , use el siguiente 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];
}
Inserte el siguiente método de actualización que llama al método anterior para que pueda volver a cargar de forma personalizada solo la celda superior (o la vista de tabla completa si lo desea):
- (void)refresh:(UIRefreshControl *)refreshControl {
//call to the method which will perform the function
[self reloadTopCell];
//finish refreshing
[refreshControl endRefreshing];
}
Ahora que tiene eso ordenado, dentro de su viewDidLoad
agregar lo siguiente:
//refresh table view
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:refreshControl];
Ahora tiene una función de tabla de actualización personalizada que volverá a cargar la celda superior. Para volver a cargar toda la tabla, agregue el
[self.tableView reloadData];
a su nuevo método de actualización.
Si desea volver a cargar los datos cada vez que cambia de vista, implemente el método:
//ensure that it reloads the table view data when switching to this view
- (void) viewWillAppear:(BOOL)animated {
[self.tableView reloadData];
}
[NSArray arrayWithObject:]
en su lugar.