gpt4 book ai didi

Swift - 如何传递 UINavigationController 并传递变量

转载 作者:行者123 更新时间:2023-11-30 13:05:57 24 4
gpt4 key购买 nike

传递 UINavigationController 并将变量传递给新 viewController 的最佳方法是什么。我知道如何做其中之一,但不能同时做两者。预先感谢您

这是我当前的代码

func(){

let vc = storyboard?.instantiateViewControllerWithIdentifier("messagesViewController") as! UINavigationController
let posts = self.postList[indexPath.row]

//this is the var that i want to past
//vc.previousViewMessageId = posts.postKey

self.presentViewController(vc, animated: true, completion: nil)


}

最佳答案

如果我理解正确的话,你有一个可以呈现第二个 VC 的 View Controller 。这个 VC 嵌入在 UINavigationController 中。您不知道该怎么做,即将数据从第一个 VC 传递到导航 Controller ,然后传递到第二个 VC。

这是一个暴力解决方案。它并不漂亮,但无论如何它都有效。

创建您自己的 UINavigationController 子类:

class DataPasserController: UINavigationController {
var previousViewMessageId: SomeType?
override func viewDidLoad() {
if let vc = self.topViewController as? YourSecondViewController {
vc.previousViewMessageId = self.previousViewMessageId
}
}
}

现在,您可以在 Storyboard中添加一个导航 Controller ,将其类设置为 DataPasserController,并将第二个 VC 连接到它作为其 Root View Controller 。

现在假设您通过调用 instantiateViewControllerWithIdentifier 获得了 DataPasserController 的实例,您可以执行以下操作:

yourDataPasserControllerInstance.previousViewMessageId = posts.postKey

并展示实例!

关于Swift - 如何传递 UINavigationController 并传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39376322/

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