Hier folgt Code:separate Klasse speichern Eingang
class settings {
static let SharedInstance = settings()
var city: String {
return self.city
}
}
jetzt, ich bin in der Lage, diese Klasse für den Zugriff auf von einer separaten Ansicht wie folgt aus:
@IBOutlet weak var cityLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
cityLabel.text = settings.SharedInstance.city
}
, aber ich möchte in der Lage sein, um den Wert der Stadt innerhalb meiner "settings
" -Klasse von einer anderen Ansicht zu ändern.
Etwas wie:
@IBOutlet weak var city: UITextField!
@IBAction func saveButtonClicked(_ sender: AnyObject) {
settings.SharedInstance.cityVar(city.text)
closeKeyboard()
}
Ich weiß nicht, wie von hier
Meine Logik zu bekommen, ist ein setter
in meinem class
, oder vielleicht ein function
, die eine string
nimmt und die Variable ändert einzuleiten, genau wie ich oben versucht habe.
UPDATE
kann ich nun eingestellt und den Namen der Stadt in dieser Klasse erhalten:
class settings {
static let SharedInstance = settings()
var city: String?
func setCity(city: String){
self.city = city
}
}
Das Problem ist jetzt, dass, wenn ich Zugriff auf die Stadt Variable in meiner Klasse „Einstellungen“ in einem anderen Ansicht, es zeigt nicht den neuen Wert:
override func viewDidLoad() {
super.viewDidLoad()
cityLabel.text = settings.SharedInstance.city
}
ich glaube, es die Sicht nicht aktualisieren
Klasse Einstellungen { privat var _x: Int = 0 var x: Int { Menge {_x = 2 * newValue} get {return _x/2}} } versuchen auf diese Weise –