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