Когда у меня есть UITableView как часть видимого контроллера представления, как я могу его перезагрузить, чтобы данные, которые я просматриваю, изменяли новые данные. Просто перезагрузка вызова, похоже, не обновляет данные, пока я не прокручу их.
Как перезагрузить UITableView, пока я смотрю на него
Ответ 1
Вызов метода reloadData
обновляет данные, как только вызывается метод. Он не ждет прокрутки таблицы. Перед вызовом reloadData
убедитесь, что источник данных (массив или словарь или везде, где вы сохранили значения) изменили.
Ответ 2
Обновляете ли вы данные из основного потока? Если это так, вам нужно вызвать метод reloadData, используя следующий метод:
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
Итак, для tableView это будет:
[tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
Ответ 3
Просто обновление 2013 года, вы также сможете перезагрузить данные, пока вы используете
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
GCD потрясающий!
Ответ 4
Следующий код поможет вам перезагрузить таблицу, когда вы смотрите, что:
[self.tableView reloadData];