Swift 以编程方式从UiView推送新视图控制器时出现问题

Swift 以编程方式从UiView推送新视图控制器时出现问题,swift,xcode,uiview,pushviewcontroller,didselectrowatindexpath,Swift,Xcode,Uiview,Pushviewcontroller,Didselectrowatindexpath,我试图在按下UiView内部的按钮后显示一条消息viewController。当我按下按钮时,viewController会自动显示消息,但它缺少一些数据。我有一个单独的viewController,可以推动控制器。我会在下面留下一些图片来说明我在说什么 这就是消息视图控制器应该是什么样子,这就是代码到达那里的样子 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

我试图在按下UiView内部的按钮后显示一条消息viewController。当我按下按钮时,viewController会自动显示消息,但它缺少一些数据。我有一个单独的viewController,可以推动控制器。我会在下面留下一些图片来说明我在说什么

这就是消息视图控制器应该是什么样子,这就是代码到达那里的样子

 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    dismiss(animated: true) {
        print("Dismiss completed")
        let user = self.user[indexPath.row]
        self.messagesController?.showChatControllerForUser(user)
    }
}

这就是当我从UiView推送视图时发生的情况,这就是代码到达那里的样子

        @objc func handleNewMessage() {
    let chatLogController = ChatLogController(collectionViewLayout: UICollectionViewFlowLayout())
           chatLogController.user = user

    let navVC = UINavigationController(rootViewController:chatLogController)
    self.window?.rootViewController?.present(navVC, animated: true, completion: nil)
}


所有的数据都通过了,但是后退按钮不见了,我不允许实际发送消息。我使用两种不同的方法到达同一个控制器,我希望看到相同的结果。我想知道是否有人可能是新的如何解决这个问题

后退按钮未显示,因为您正在使用下面的功能显示
chatLogController

@objc func handleNewMessage() {
    let chatLogController = ChatLogController(collectionViewLayout: UICollectionViewFlowLayout())
           chatLogController.user = user

    let navVC = UINavigationController(rootViewController:chatLogController)
    self.window?.rootViewController?.present(navVC, animated: true, completion: nil)
}
如果从
messagescoontroller
按到
chatLogController
,则在
chatLogController
上显示后退按钮


注意:当您按下另一个
viewController
时,返回按钮会自动显示,当您显示
viewController
时,返回按钮不会显示。

我对此建议有异议。我使用此特定视图遇到问题的唯一原因是,当我使用handleNewMessage访问chatLongController时,无法访问它的所有功能。用户名显示在导航栏中,但当我发送消息时,它会崩溃。我在想我在动画中缺少了一个初始值设定项?