gpt4 book ai didi

arrays - 将 json 数组传递给另一个 View Controller 并使用 segue 在不同的标签中显示它

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

我想将 json 数组发送到另一个 View Controller ,并在另一个 View Controller 中以不同的标签显示它??

var sendData = [String: AnyObject]()
sendData = datas
print("Send Data : \(sendData)")
DispatchQueue.main.async {
self.performSegue(withIdentifier: "checkLoginViewController", sender: sendData)
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destinationVC = segue.destination as? signUpViewController {
if let sendmyArray = sender as? [String]{
destinationVC.myarray = sendmyArray
}
}

signUpViewController.swift:

var myarray = [String]()
var myemail = ""
var myname = ""

override func viewDidLoad() {
super.viewDidLoad()
MynameLabel.text = myname
nameTextfield.text = myemail
myarray = [myemail,myname]
print(myarray)
print(myemail)
print(myname)
}

我能够获取数组,但我无法将数组发送到另一个 View Controller ,我必须在不同的标签中显示它

最佳答案

你混淆了数组和字典

  • sendData 是字典 ([String: AnyObject])
  • myarray 是数组 ([String])

当然可选向下转换 sender as? [String] 失败,因为发件人是字典。

因为源是一个包含String 键和值的字典,将代码更改为

var sendData = [String: String]()

...

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let destinationVC = segue.destination as? signUpViewController,
let sendmyDictionary = sender as? [String: String] {
destinationVC.myDictionary = sendmyDictionary
}
}

在第二个 Controller 中

var myDictionary = [String: String]()

override func viewDidLoad() {
super.viewDidLoad()

MynameLabel.text = myDictionary["name"]
nameTextfield.text = myDictionary["email"]
}

注意:Swift 3+ 中的未指定值类型字典是 [String:Any],根据命名约定,变量名称应该以小写字母开头。

关于arrays - 将 json 数组传递给另一个 View Controller 并使用 segue 在不同的标签中显示它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49666378/

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