2016-05-17 5 views
0

Ich habe einen UISwitch auf meinem View-Controller und ich habe es so, wenn ich es umschalten ändert sich der Text einer Schaltfläche. das erste Mal, wenn ich es aus- und wieder einschalte, funktioniert es nicht, aber wenn du es ein zweites Mal versuchst, funktioniert es ... gibt es etwas, das mir in meinem Code fehlt?Swift UISwitch funktioniert nicht zum ersten Mal

 UISwitchOutlet.addTarget(self, action: #selector(MainPageViewController.switchChanged(_:)), forControlEvents: UIControlEvents.ValueChanged) 


func switchChanged(mySwitch: UISwitch) { 
    let value = UISwitchOutlet.on 
    if value { 
     self.enterRoom.titleLabel?.text = "Enter Room" 
    } else { 
     self.enterRoom.titleLabel?.textAlignment = NSTextAlignment.Center 
     self.enterRoom.titleLabel?.text = "Create" 


    } 
} 
+0

definieren 'lassen value = UISwitchOutlet.on' vor', wenn der Wert { 'bedingte macht keinen Sinn. es wird nie zur else Option gehen. Löschen Sie die erste Zeile und ändern Sie die zweite in 'if mySwitch.on {' –

+0

Oh mein Fehler Ich dachte, ich musste zuerst den Standardwert setzen – RubberDucky4444

+0

nur hinzufügen, um ViewDidLoad 'UISwitchOutlet.on = wahr ' –

Antwort

1

Versuchen Sie unten. Ihr Wert würde immer an sein, weil Sie auf den Einschaltstatus eingestellt waren.

func switchChanged(mySwitch: UISwitch) { 
    if mySwitch.isOn { 
     self.enterRoom.titleLabel?.text = "Enter Room" 
    } else { 
     self.enterRoom.titleLabel?.textAlignment = NSTextAlignment.Center 
     self.enterRoom.titleLabel?.text = "Create" 
    } 
}