将天气数据传输到容器视图

时间:2018-05-10 12:52:20

标签: ios json swift segue

我无法更新容器视图中的标签。以下是我是如何做到的。

我在主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"
}
}

0 个答案:

没有答案