2015-08-29 3 views
-1

Я определяю переменную внутри viewWillAppear() и хотите использовать его в качестве источника данных для моих UITableViewSwift - Как использовать переменную, определенную в viewDidAppear() в табличных методах?

var receivedMessages = [AnyObject]() 

override func viewWillAppear(animated: Bool) { 

    let chatController = ChatController(sender: self.sender, receiver: self.receiver) 

    // Load messages 
    chatController.loadMessages() { 
     (arr) -> Void in 

     if let responseArray = arr { 

      self.receivedMessages = responseArray 
     } 


    } 

} 

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return self.receivedMessages.count // This is always 0 
} 

Как прокомментировал UITableView не всегда ни одной строки. Я знаю, что решение имеет какое-то отношение к обработчику завершения loadMessages(), но я не знаю, как это сделать правильно.

+2

Вы должны вызвать 'reloadData()' в своем представлении таблицы после того, как вы присвоите 'responseArray'! – luk2302

ответ

0

Внутри блока завершения к loadMessages, после заявления

self.receivedMessages = responseArray 

называют reloadData() метод вашего Tableview в.

+0

Это ничего не меняет – PhilHarmonie

Смежные вопросы