2016-10-11 2 views
0

Я прочитал много решений, они не помогли мнеtableView.reloadData не обновляет интерфейс

У меня есть вид таблицы, которая добавляется к моему ViewController. Я потащил его как выход на контроллер.

@IBOutlet weak var tableView: UITableView! 

В viewDidLoad я добавил

tableView.dataSource = self 
tableView.delegate = self 

У меня есть метод, чтобы обновить данные в таблице:

private func updateModel() { 
    guard let chatUid = UsersManager.sharedInstance.currentChatUID() else { return } 

    RealtedUserApi().getRelatedUser("\(chatUid)", successHandler: { (relatedUsers) in 

     dispatch_async(dispatch_get_main_queue()) { 
      self.relatedUsers = relatedUsers 
      self.tableView.reloadData() 
     } 
    }) { (error) in 
     print(error) 
    } 
} 

, который выполняется, когда вытаскивают-для-обновления, но UI ISN» t updated

Я поместил точку брака в ячейку таблицы и там были данные с сервера (например, статус пользователя) но пользовательский интерфейс не отображается - статус пользователя остается неизменным на ярлыке ячейки

Есть ли у кого-нибудь идеи, как это исправить?

p.s. relatedUsers - это массив объекта RelatedUser. Это источник для моего tableView. RelatedUser имеет свойство состояния, который изменяется на сервере, и мне нужно, чтобы обновить соответствующий текст метки в ячейке

+0

Возможно, ваш chatUid пуст или ваши родственные пользователи пустые. Вы можете попробовать положить print (relatedUsers) в вашу асинхронную рассылку, чтобы проверить, есть ли что-то, чтобы отобразить –

+0

relatedUser не ноль. Я вижу строки. Мне нужно обновить соответствующий текст ярлыка в ячейке, когда он изменится на сервере, и связанные с ним пользователи обновлены, но UI не – Ilya

+0

Что вы возвращаете для метода numberOfRows? – Santosh

ответ

0

Проблема была настолько глупо, так что это позор на меня:

я заметил какую-то часть кода в dequeueReusableCellWithIdentifier блоке, где также был return cell и забыл об этом. Но в конце cellForRowAtIndexPath я возвращаю UITableViewCell().

Обычно в этом случае приложение вылетает, но в моем случае это не так. Поэтому я мог видеть строки с данными с сервера, но обновление не работало.