Hallo zusammen,
ich erlerne gerade das Programmieren mit Swift5 und stehe vor einem Problem. welches ich nicht zu lösen vermag.
Ich habe einen ViewController, in dem sich 3 UISwitches befinden.
Stellt man einen auf .isON == true, sind die beiden anderen automatisch auf .isON = false.
So weit so gut, das funtktioniert auch,
Nun will ich aber den Switch state aller drei Switches auch speichern, wenn ich auf den "unwindStops" Button tippe um zum verherigen View zurück zu kehren.
Das funktioniert zwar grundsätzlich, aber nur wenn ich die Switches auch wirklich einzeln ein oder ausschalte, is.On = false wird einfach nicht gespeichert,
Der zuletzt betätigte Switch bleibt immer auf .isON
Hier der Code, soweit ich ihn bisher geschrieben hab
Alles anzeigen
Wie schaffe ich es, dass alle Switches automatsch gespeichert werden?
BItte verzeiht mir die für Euch wahrscheinlich relativ simple Frage, wie gesagt, ich lerne gerade.
VIelen Dank und Grüße,
Wolfgang
ich erlerne gerade das Programmieren mit Swift5 und stehe vor einem Problem. welches ich nicht zu lösen vermag.
Ich habe einen ViewController, in dem sich 3 UISwitches befinden.
Stellt man einen auf .isON == true, sind die beiden anderen automatisch auf .isON = false.
So weit so gut, das funtktioniert auch,
Nun will ich aber den Switch state aller drei Switches auch speichern, wenn ich auf den "unwindStops" Button tippe um zum verherigen View zurück zu kehren.
Das funktioniert zwar grundsätzlich, aber nur wenn ich die Switches auch wirklich einzeln ein oder ausschalte, is.On = false wird einfach nicht gespeichert,
Der zuletzt betätigte Switch bleibt immer auf .isON
Hier der Code, soweit ich ihn bisher geschrieben hab
Quellcode
- import UIKit
- class SelectStops: UIViewController {
- @IBOutlet weak var oneStopSwitch: UISwitch!
- @IBOutlet weak var halfStopSwitch: UISwitch!
- @IBOutlet weak var thirdStopSwitch: UISwitch!
- let switchDelfault = UserDefaults.standard
- @IBAction func unwindStops(_ sender: UIStoryboardSegue) {
- dismiss(animated: true, completion: nil)
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- oneStopSwitch.isOn = switchDelfault.bool(forKey: "switchState1")
- halfStopSwitch.isOn = switchDelfault.bool(forKey: "switchState2")
- thirdStopSwitch.isOn = switchDelfault.bool(forKey: "switchState3")
- }
- @IBAction func oneStopSwitchChanged(_ sender: UISwitch) {
- if sender.isOn == true {
- halfStopSwitch.isEnabled = false
- thirdStopSwitch.isEnabled = false
- } else if oneStopSwitch.isOn == false && halfStopSwitch.isOn == false && thirdStopSwitch.isOn == false {
- oneStopSwitch.isOn = true
- }
- switchDelfault.set(sender.isOn, forKey: "switchState1")
- }
- @IBAction func halfStopSwitchChanged(_ sender: UISwitch) {
- if sender.isOn == true {
- oneStopSwitch.isOn = false
- thirdStopSwitch.isOn = false
- } else if oneStopSwitch.isOn == false && halfStopSwitch.isOn == false && thirdStopSwitch.isOn == false {
- halfStopSwitch.isOn = true
- }
- switchDelfault.set(sender.isOn, forKey: "switchState2")
- }
- @IBAction func thirdStopSwitchChanged(_ sender: UISwitch) {
- if sender.isOn == true {
- oneStopSwitch.isOn = false
- halfStopSwitch.isOn = false
- } else if oneStopSwitch.isOn == false && halfStopSwitch.isOn == false && thirdStopSwitch.isOn == false {
- thirdStopSwitch.isOn = true
- }
- switchDelfault.set(sender.isOn, forKey: "switchState3")
- }
- }
BItte verzeiht mir die für Euch wahrscheinlich relativ simple Frage, wie gesagt, ich lerne gerade.
VIelen Dank und Grüße,
Wolfgang