Мне нужно выполнить функцию при изменении значения переменной.
У меня есть одноэлементный класс, содержащий общую переменную, называемую labelChange
. Значения этой переменной берутся из другого класса под названием " Model
. У меня есть два класса VC, один из которых имеет кнопку и метку, а вторую - только кнопку.
Когда нажата кнопка в первом классе VC, я обновляю эту метку с помощью этой функции:
func updateLabel(){
self.label.text = SharingManager.sharedInstance.labelChange
}
Но я хочу вызвать тот же метод всякий раз, когда labelChange
значение labelChange
. Поэтому при нажатии кнопки я обновляю значение labelChange
и когда это произойдет, я хочу обновить метку новым значением labelChange
. Также во втором VC я могу обновить значение labelChange
но я не могу обновить метку, когда это значение изменилось.
Возможно, свойства - это решение, но может ли кто-нибудь показать мне, как это сделать.
Отредактировано второй раз:
Singleton Класс:
class SharingManager {
func updateLabel() {
println(labelChange)
ViewController().label.text = SharingManager.sharedInstance.labelChange
}
var labelChange: String = Model().callElements() {
willSet {
updateLabel()
}
}
static let sharedInstance = SharingManager()
}
Первый VC:
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
@IBAction func Button(sender: UIButton) {
SViewController().updateMessageAndDismiss()
}
}
Второй VC:
func updateMessageAndDismiss() {
SharingManager.sharedInstance.labelChange = modelFromS.callElements()
self.dismissViewControllerAnimated(true, completion: nil)
}
@IBAction func b2(sender: UIButton) {
updateMessageAndDismiss()
}
Я сделал некоторые улучшения, но мне нужно ссылаться на ярлык из первого класса VC в singleton. Поэтому я обновлю эту метку VC в singleton.
Когда я печатаю значение labelChange
значение обновляется, и все в порядке. Но когда я пытаюсь обновить это значение на ярлыке от singleton, я получаю сообщение об ошибке:
неожиданно найдено нуль при развертывании необязательного значения
и ошибка указывает на 4-ю строку одноточечного класса.