我无法更新容器视图中的标签。以下是我是如何做到的。
我在主VC中编写了updateWeather函数,并成功检索了天气数据。当我打印weatherJSON时,它会在控制台中显示所有收到的数据。
现在当我开始编写updateUI函数时,我只能更新主VC上的标签。
所以我使用prepare segue将数据发送到容器视图并将字符串发送到容器VC并更新"湿度"标签成功。所有标签都接受字符串而没有任何问题。
但我不知道如何将天气数据发送到容器视图。
我尝试使用对象weatherDataModel传递值,但没有任何反应。我甚至声明了一个引用容器视图类的新对象,并在updateUI函数中使用它来设置标签值,但它也不会起作用。
我不知道用什么代替字符串来获取天气数据到下一个VC。
override func prepare(for segue: UIStoryboardSegue, sender for: Any?) {
if segue.identifier == "displayFullWeatherInfo"{
let destinationVC = segue.destination as! FullWeatherViewController
destinationVC.delegate = "\(weatherDataModel.pressure)"
....
....
继承我的WeatherDataModel类:
import Foundation
class WeatherDataModel{
var city = ""
var temp = 0
var country = ""
var humidity = 0
}
在我的主VC中创建了weatherDataModel对象,这里是我的updateWeatherInfo代码:
func updateWeatherInfo(json : JSON){
if let tempDefault = json["data"][0]["temp"].double{
weatherDataModel.temp = Int(tempDefault)
weatherDataModel.city = json["data"][0["city_name"].stringValue
weatherDataModel.country = json["data"][0]["country_code"].stringValue
weatherDataModel.humidity = json["data"][0]["rh"].intValue
updateWeatherUI()
}
else{
currentLocation.text = "Not Available"
}
}