由于某些原因,我的代码可以正常打印user.email
,但是它不向用户显示chatlog控制器,它什么都不做?
(当我单击标题中的按钮时,调用func openUsersChatLogForUser()
)
与-class ProfilePageHeader: UICollectionViewCell
var messagesController: MessagesController?
func openUsersChatLogForUser(){
guard let user = self.profileUser else {return}
print(user.email!)
self.messagesController?.showChatControllerForUser(user)
}
下面的函数在
MessagesController: UITableViewController
类中func showChatControllerForUser(_ user: User2) {
let chatLogController = ChatLogController(collectionViewLayout: UICollectionViewFlowLayout())
chatLogController.user = user
navigationController?.pushViewController(chatLogController, animated: true)
}
最佳答案
1)检查messagesController
是否包含值(不是nil)。
2)检查是否有管理navigationController
的MessagesController
。如果不存在,则将该控制器嵌入UINavigationController
。否则它将无法推送任何内容。
3)不太可能,但仍然可以是:从主线程调用showChatControllerForUser
:
DispatchQueue.main.async {
self.messagesController?.showChatControllerForUser(user)
}