Как привязать свойство объекта к UIlabel с помощью RXSwift? - PullRequest
0 голосов
/ 04 октября 2019

У меня есть класс Model, как показано ниже:

class Model{
    var currentTemparature:String?
    var minTemparature:String?
    var maxTemparature:String?

    init(currentTemparature:String,minTemparature:String,maxTemparature:String) {
        self.currentTemparature = currentTemparature
        self.maxTemparature = maxTemparature
        self.minTemparature = minTemparature
    }
}

Я хочу связать каждое из этих свойств с UILabel в ViewController с помощью RXSwift.

Например:

class ViewController:UIViewController{
    @IBOutlet var currentTemparatureLabel: UILabel!
    @IBOutlet var minTemparatureLabel: UILabel!
    @IBOutlet var maxTemparatureLabel: UILabel!

    func UpdateLabels(){
        let model = Model.init(currentTemparature: "25", minTemparature: "20", maxTemparature: "30")
        currentTemparatureLabel.text = model.currentTemparature
        minTemparatureLabel.text = model.minTemparature
        maxTemparatureLabel.text = model.maxTemparature
    }
}

Когда значение свойств модели изменяется, я хочу обновить метку. Как мне этого добиться?

1 Ответ

0 голосов
/ 04 октября 2019

У вас должна быть Observable вашей модели данных (которая может быть получена, например, с сервера), а затем вы можете напрямую связать ее результат с вашей меткой, используя .bind (yourlabel.rx.text)

Каждый раз, когда значение изменяется, оно также обновляет ваш вид с привязкой к вашему ярлыку

...