2016-09-28 5 views
1

Ich habe vier UISwitches auf einer Seite. Ich teste AnimalSwitch, um zu sehen, ob es funktioniert. Standardmäßig ist es eingeschaltet, wenn ich es ausschalte und zu einem anderen View-Controller und zurück gehe, sagt das Test-Label, dass es immer noch ausgeschaltet ist, aber das Switch-Bild zeigt, dass es an ist. Dies ist der Code des Switch im Versuch zu ändern (die anderen, die ich unberührt gelassen habe, bis ich dieses Problem behebe). Die anderen Schalter sind gleich benannt, nur das Wort "Animal" ändert sich.UISwitch scheint nicht den richtigen Zustand zu zeigen

let defaults = UserDefaults.standard 
    AnimalSwitch.setOn(true, animated: true) 
    if (defaults.object(forKey: "AnimalswitchState") != nil) { 
    AnimalSwitch.isOn = defaults.bool(forKey: "AnimalswitchState") 
    print("switched") 
} 
+0

Es ist behoben! Das Problem war woanders in meinem Code. Danke! – Femkeo

Antwort

1

Sind Sie sicher, dass die userDefaults aktualisiert wird? Denken Sie daran, dass Sie synchronize() anwenden müssen, um Änderungen zu übernehmen. Und wann aktualisieren Sie den Switch und das Label? Sie sollten das Etikett aktualisieren, indem Sie den geänderten Ereigniswert des Schalters verwenden.

+0

ich denke, synchronisieren() nicht mehr benötigt in swift –

+0

Ich schaute es nach oben und Ihr Recht von Version 8.0 wird nicht mehr benötigt. – Femkeo

Verwandte Themen