pour une raison quelconque mon code affiche le user.email
bien mais il ne présente pas le contrôleur chatlog pour l'utilisateur, il ne fait rien?présent contrôleur de vue de collection à partir d'un UICollectionViewCell
(le func openUsersChatLogForUser()
est appelé quand je clique sur un bouton dans l'en-tête)
avec en - class ProfilePageHeader: UICollectionViewCell
var messagesController: MessagesController?
func openUsersChatLogForUser(){
guard let user = self.profileUser else {return}
print(user.email!)
self.messagesController?.showChatControllerForUser(user)
}
la fonction ci-dessous est dans la classe MessagesController: UITableViewController
func showChatControllerForUser(_ user: User2) {
let chatLogController = ChatLogController(collectionViewLayout: UICollectionViewFlowLayout())
chatLogController.user = user
navigationController?.pushViewController(chatLogController, animated: true)
}
grâce Hexfire messageController est égal à zéro comment pourrais-je le mettre? – bennypalms661
Définissez simplement sa valeur lors du remplissage de la vue de collection avec vos cellules personnalisées. – Hexfire
C'est la méthode 'collectionView (collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell' que vous recherchez. Lorsque vous appelez 'collectionView.dequeueReusableCellWithReuseIdentifier', vous le transtypez dans votre cellule personnalisée. alors appelez: 'cell.messagesController' = ... controller. – Hexfire