gpt4 book ai didi

ios - 无法将 JSON 值传输到 SecondViewController 中的标签

转载 作者:行者123 更新时间:2023-11-30 11:14:02 26 4
gpt4 key购买 nike

我正在尝试通过按下主视图 Controller 中的按钮将 JSON 值传输到另一个 View Controller 中的标签。我的第一个 View Controller 称为“ViewController”,第二个 View Controller 称为“AdvancedViewController”。下面的代码显示了我如何获取 JSON 数据,它工作正常,在 MainViewController 中的标签中显示 JSON 值,但是当我将 JSON 值发送到 AdvancedViewController 中的标签时,我按下按钮,它会加载AdvancedViewController 但标签值没有改变?我已经在我的 AdvancedViewController 中分配了标签,但我不确定为什么它不起作用。我正在尝试将其传输到高级 View Controller 中的值“avc.Label”

主标签代码显示了我如何让它在我的 MainViewController 中工作

代码如下:

我的主视图 Controller :

 guard let APIUrl = URL(string: "https://api.openweathermap.org/data/2.5/weather?q=" + text +  "&appid=e7b2054dc37b1f464d912c00dd309595&units=Metric") else { return }
//API KEY

URLSession.shared.dataTask(with: APIUrl) { data, response, error in
guard let data = data else { return }


let decoder = JSONDecoder()
//Decoder

do {
let weatherData = try decoder.decode(MyWeather.self, from: data)

if (self.MainLabel != nil)
{
if let gmain = (weatherData.weather?.first?.main) { //using .first because Weather is stored in an array
print(gmain)
DispatchQueue.main.async {
self.MainLabel.text! = String (gmain)
}
}

}

let avc = AdvancedViewController(nibName: "AdvancedViewController", bundle: nil)

if (avc.Label != nil)
{
if let mTest = (weatherData.weather?.first?.myDescription) { //using .first because Weather is stored in an array
DispatchQueue.main.async {
avc.Label.text! = String (mTest)
}
}
}

最佳答案

AdvancedViewController中创建存储mTest值的变量

class AdvancedViewController: ViewController {

var test: String!

override func viewDidLoad(){
super.viewDidLoad()

if let test = test {
myLabel.text = test
}
}

}



let vc = storyboard?.instantiateViewController(withIdentifier: "AdvancedViewController") as! AdvancedViewController
if let mTest = (weatherData.weather?.first?.myDescription) {
vc.test = mTest
}
DispatchQueue.main.async {
present(vc, animated: true, completion: nil)
}

关于ios - 无法将 JSON 值传输到 SecondViewController 中的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51913117/

26 4 0