2015-08-29 1 views
-1

Je définir une variable à l'intérieur viewWillAppear() et que vous voulez l'utiliser comme source de données pour mes UITableViewSwift - Comment utiliser une variable définie dans viewDidAppear() dans les méthodes de table?

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 
} 

Comme commenté le UITableView n'a toujours pas de lignes. Je sais que la solution a quelque chose à voir avec le gestionnaire de complétion de loadMessages() mais je ne sais pas comment le faire correctement.

+2

Vous devez déclencher un 'reloadData()' sur votre tableview après avoir assigné 'responseArray'! – luk2302

Répondre

0

A l'intérieur du bloc d'achèvement loadMessages, après la déclaration

self.receivedMessages = responseArray 

appeler votre méthode de tableView reloadData().

+0

Cela ne change rien – PhilHarmonie