gpt4 book ai didi

ios - 关闭两个 View Controller 然后推送一个 View Controller - Swift

转载 作者:行者123 更新时间:2023-11-28 15:29:45 25 4
gpt4 key购买 nike

在这个问题中我要处理 4 个 View Controller 。为了简单起见,我将它们称为 vcA、vcB、vcC 和 vcD。

总的来说,我想做的是关闭两个 View Controller ,然后将第三个 View Controller 推送到第四个 View Controller 。基本上路径是这样的:vcA(dismissed) -> vcB(dismissed) -> vcC pushes to vcD(final destination)。

这是我当前的流程代码。请注意,我可以关闭前两个 View Controller ,但我不知道如何推送第三个 View Controller 。无论如何,这是我的代码:

vcA 代码:

@IBAction func createGroupButtonTapped(_ sender: Any) {
if groupNameTextField.text == "" {
ProgressHUD.showError("Please enter a group title")
} else {

self.presentingViewController?.dismiss(animated: false, completion: nil)

NewConversationController().showDisplayConversationsController(title: self.groupNameTextField.text!, groupThumbnail: self.groupImageView, members: CreateConversationPopOver.groupMembers)

self.presentingViewController?.dismiss(animated: true, completion: nil)

}
}

在上面的代码中,我关闭了前两个 View Controller ,并在 vcB 中调用了一个函数。 vcB 中的这个函数调用了 vcC 中的一个函数。这是函数的代码:

vcB 中的函数:

func showDisplayConversationsController(title: String, groupThumbnail: UIImageView, members: Array<String>) {
dismiss(animated: true, completion: nil)
DisplayConversationsController().showViewChatController(title: title, groupThumbnail: groupThumbnail, members: members)
}

vcC 中的函数:

func showViewChatController(title: String, groupThumbnail: UIImageView, members: Array<String>) {
let viewChatController = ViewChatController(collectionViewLayout: UICollectionViewFlowLayout())
viewChatController.hidesBottomBarWhenPushed = true

viewChatController.groupThumbnail = groupThumbnail
viewChatController.groupMembers = members
viewChatController.groupTitle = title

navigationController?.pushViewController(viewChatController, animated: true)
}

问题出现在 VCC 中,其中 View Controller 从不推送到最终目的地(也称为 vcD)。我在上面的函数中添加了断点,它们都被调用了。所以代码正在运行。

我不知道为什么 View Controller 不会推送,因为即使经过多次测试,我的所有函数都会被调用。

如有任何帮助,我们将不胜感激。谢谢!

PS:如果您想知道为什么我要关闭 View 并以这种方式呈现它们,那是因为我需要通过这些 View 将数据传递到聊天日志 Controller 中。

最佳答案

首先。
检查vcC的navigationController,可能是nil。
看来你调用类方法NewConversationController DisplayConversationsController,(不熟悉swift,或者这两个是)不是实例方法。也许它不是正确的 vcC,只是一个新的 vcC?

PS:很奇怪你 vcA.presentingViewController 解散了两次,根据你所说的,它只是解散了。如果您能描述如何呈现 vcA、vcB 或提供演示来展示它的工作原理,我认为这可能会有所帮助。

关于ios - 关闭两个 View Controller 然后推送一个 View Controller - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44856462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com