Подтвердить что ты не робот

UITableView reloadData() не обновляет отображаемые ячейки

У меня

class StationViewController : 
    UITableViewController, UITableViewDelegate, UITableViewDataSource {
  @IBOutlet var stationTableView: UITableView!

При обновлении данных в моем источнике данных и

stationTableView.reloadData()

это не сразу видно на экране. Если я прокручиваю, наклоняю или делаю что-нибудь еще, что заставляет перекрашивать экран, то отображаются обновленные ячейки. Я могу подтвердить, что UITableView выполнил обновление, вызвав

println("\(stationTableView.visibleCells())")

который печатает ожидаемые ячейки.

Остальная часть настройки - это UINavigationController, у которой my StationViewController в качестве отношения. IBOutlet для StationViewController подключен к UITableView в файле раскадровки.

Кажется, мне нужна "перекраска" экрана, чтобы мое обновление сразу стало видимым. Как это сделать?

4b9b3361

Ответ 1

Благодаря Артему, я понял, что мне нужно вызвать reloadData() в основном потоке. Вот как я решил, что:

func refreshUI() {
    dispatch_async(dispatch_get_main_queue(),{
        self.stationTableView.reloadData()
    });
}