gpt4 book ai didi

ios - Swift 4 从 UITableView 执行 segue 并传递数据

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

我有 1 个 UITableViewController 和 1 个 UIViewController。在我的 UITableViewController 中,我有这个 didSelectRowAt 方法:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

self.performSegue(withIdentifier: "PDFIdentifier", sender: nil)

}

运行这段代码:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

let viewController = storyboard?.instantiateViewController(withIdentifier: "PDFFile") as! PDFFileController

viewController.data = self.file

viewController.fileName = self.fileName

}

这确实以模态方式呈现 UIViewController PDFFileController,当我在当前方法 viewController.data 和 viewController.fileName 中放置一个断点时,正在填充它。当它越过 PDFFileController 时,这些值是空的。为什么它们是空的,我做错了什么?

最佳答案

你不需要转场,只需要呈现

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

let viewController = storyboard?.instantiateViewController(withIdentifier: "PDFFile") as! PDFFileController

viewController.data = self.file

viewController.fileName = self.fileName

self.present(viewController,animated:true)
}

或者如果你想保留 segue 模态属性

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

let viewController = segue.destination as! PDFFileController

viewController.data = self.file

viewController.fileName = self.fileName

}

永远不要prepareForSegue 中实例化一个 vc,因为它将是一个动态的新实例,真正的目标 vc 不会得到它的数据

enter image description here

关于ios - Swift 4 从 UITableView 执行 segue 并传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52837056/

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