如何在班级之间快速发送数据?

时间:2019-01-26 15:58:25

标签: ios swift

我是新手,我的问题也许使您感到困惑,但我尝试对此进行清楚地解释。 我要制作天气应用。我的故事中有一个视图控制器。 在我的视图控制器中,我有2个视图,使它们分别位于xib文件中。一个视图具有用于显示名称的标签和用于显示所选城市的天气状况的图像视图,而另一个视图是具有多个视图以供选择的集合视图。 我将城市信息保存在一个类中,并为城市建模。 这是我的模型文件:

    place1     place2     place3
 Pondichéry     Lorient    Lorient
 Pondichéry Pondichéry Pondichéry
 Pondichéry    Lorient      Brest
 Port-Louis Port-Louis Port Louis
 Port-Louis   Port-Louis     Nantes

下面的代码是我的课程,我在数组中保存了许多城市信息;

struct City {        
    private(set) public var code: String
    private(set) public var fName: String
    private(set) public var eName: String
    private(set) public var image: String        

    init (code: String, fName: String, eName: String, image: String) {
        self.code = code
        self.fName = fName
        self.eName = eName
        self.image = image
    }        
}

我正确显示了集合城市中的数组,现在我想当我选择一个城市时,我选择的城市的eName和图像显示在第一视图的标签和图像视图中。 我在下面的代码中保存了“ city” var中所选城市信息的代码,但是我不知道如何将该信息发送到另一个文件:

public class Publics {    

    static let instance = Publics()          

    private let Cities = [
        City(code: "143127", fName: "a", eName: "A", image: "https://media.is48.jpg/3") ,
        City(code: "143083", fName: "b", eName: "B", image: "http://www.ie_650_365.jpg") ,
        City(code: "121801", fName: "c", eName: "C", image: "https://www.weeeh.jpg?13112") ,
        City(code: "418863", fName: "d", eName: "D", image: "https://i.pinf7c0ec2c8617.jpg") 
]
}

我该怎么办? (很抱歉,冗长的描述)

2 个答案:

答案 0 :(得分:0)

视图之间有多种发送数据的方法 1-依赖注入 2- NSNotification(也可以使用rxswift) 3代表 4个关闭 5个存储在用户默认设置中(不推荐) 6个单个对象(不推荐)

答案 1 :(得分:-1)

执行此操作的一种方法是使用Notifications。当用户从集合视图中选择城市时,集合视图(或其控制者)可以post a notification到默认的NotificationCenter,说选择了一个新城市。

每当选择更改时希望知道的其他对象都可以侦听相同的通知。 observes that notification发生后,它可以执行所需的任何操作。