Jeśli używasz niestandardowych TableViewCells, ogólny
[self.tableView reloadData];
nie odpowie skutecznie na to pytanie, chyba że opuścisz bieżący widok i wrócisz. Pierwsza odpowiedź też nie.
Aby pomyślnie ponownie załadować pierwszą komórkę widoku tabeli bez przełączania widoków , użyj następującego kodu:
- (void)reloadTopCell {
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
NSArray *indexPaths = [[NSArray alloc] initWithObjects:indexPath, nil];
[self.tableView reloadRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone];
}
Wstaw następującą metodę odświeżania, która wywołuje powyższą metodę, dzięki czemu możesz ponownie załadować tylko górną komórkę (lub cały widok tabeli, jeśli chcesz):
- (void)refresh:(UIRefreshControl *)refreshControl {
[self reloadTopCell];
[refreshControl endRefreshing];
}
Teraz, gdy masz już to posortowane, wewnątrz viewDidLoad
dodaj następujące elementy:
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:refreshControl];
Masz teraz niestandardową funkcję odświeżania tabeli, która ponownie załaduje górną komórkę. Aby ponownie załadować całą tabelę, dodaj plik
[self.tableView reloadData];
do nowej metody odświeżania.
Jeśli chcesz przeładowywać dane za każdym razem, gdy przełączasz widoki, zaimplementuj metodę:
- (void) viewWillAppear:(BOOL)animated {
[self.tableView reloadData];
}
[NSArray arrayWithObject:]
.