gpt4 book ai didi

swift - 如何在两个 View Controller 之间发送结构数组?

转载 作者:行者123 更新时间:2023-11-30 10:54:29 25 4
gpt4 key购买 nike

点击“rankingButton”后,我尝试在两个 VC 之间发送 Struct 的数组“ranking”。我不知道在第二个 vc 中编写什么代码来获取和操作数组。

第一个风险投资:

struct TopPoint{
let user: String
let points: Int
var position: Int
}

var ranking: [TopPoint] = []

override func viewDidLoad() {
super.viewDidLoad()
let user1 = TopPoint(user: "fran", points: 1324, position: 1)
ranking.append(user1)
}

@IBAction func rankingButton(_ sender: Any) {
let vc = TopUserTableViewController(nibName: "TopUserTableViewController", bundle: nil)
vc.ranking = ranking
navigationController?.pushViewController(vc, animated: true)
}

第二个风险投资:

class TopUserTableViewController: UITableViewController {

var ranking = [TopPoint]()

override func viewDidLoad() {
super.viewDidLoad()
}

//what to code to get the array?

}

最佳答案

一旦您的 secondVC 被推送,您就可以直接访问 secondVC 中的数组。因为您将其 ranking 属性设置为等于 firstVC 中的 ranking 例如,考虑使用一种方法来迭代数组元素并打印每个结构的用户数组中的元素。您可以通过以下方式做到这一点:

class TopUserTableViewController: UITableViewController {

var ranking: [TopPoint]!

override func viewDidLoad() {
super.viewDidLoad()
iterateElements()
}

func iterateElements() {
ranking.forEach { (element) in
print(element.user)
}
}

}

你也可以直接在你的viewDidLoad内部访问,我添加了iterateElements方法作为引用,直接在viewDidLoad中访问为:

    override func viewDidLoad() {
super.viewDidLoad()
ranking.forEach { (element) in
print(element.user)
}
}

关于swift - 如何在两个 View Controller 之间发送结构数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54118238/

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