2016-10-28 2 views
-1

Ich versuche eine Login-Seite zu erstellen, die es jemandem erlaubt, einen einfachen 6-stelligen numerischen Code einzugeben. Die Anmeldeseite wird bereits mit dem Passwort "719403" eingestellt und kann vom Benutzer nicht geändert werden. Wenn der Passcode korrekt ist, wird er zu einem anderen Viewcontroller geleitet, aber wenn das Passwort falsch ist, passiert nichts.Einfaches Passwort mit uitextfield in swift

+0

Haben Sie bereits ein Textfeld mit entsprechenden Delegate-Methoden eingerichtet? –

+0

Implementieren Sie einfach 'shouldPerformSegueWithIdentifier' und überprüfen Sie den Wert im Textfeld. Geben Sie' true' oder 'false' wie erforderlich zurück. – Paulw11

+0

@AdamZarn Ich habe nur das UItextfield auf dem Storyboard –

Antwort

1

Erstellen Sie ein @IBOutlet Ihres UITextField und setzen Sie Ihren ViewController als Delegat Ihres Textfelds in viewDidLoad.

self.textField.delegate = self 

Dann, wenn Sie wollen den Übergang starten, überprüfen Sie, ob Ihre Textfield Wert „719403“ gleich:

if self.textField.text == "719403" { 
//perform segue 
} 
+0

Ich habe einen Fehler beim Einstellen von self.textfield.delegate to self. Ich fügte die Steckdose hinzu und rief das textField "textField" auf, aber es hat einen Fehler unter dem zweiten Selbst –

+0

Muss ich einem Delegierten meiner Klasse hinzufügen? –

+0

Richtig, ändern Sie in Klasse ViewController: UITextFieldDelegate –

0

Sie können NSNotification mit UITextFieldTextDidChange Benachrichtigung Namen implementieren. diesen Code Setzen Sie in viewWillAppear

NotificationCenter.default.addObserver(self, selector: #selector(textFieldChanged(_:)), name: NSNotification.Name.UITextFieldTextDidChange, object: nil) 

Und diese Funktion implementieren sowie

func textFieldChanged(_ info:Notification) { 

     if self.textField.text == "719403" { 
      //perform segue 
     } 
} 
+0

Überprüfen Sie meine Antwort unten –

+0

Die Sie implementiert haben erfordert eine Schaltfläche für die Aktion. In meiner Lösung, sobald der textField mit dem Wert übereinstimmt, geht es zum nächsten Controller. –

0

konnte ich mein Problem beheben.

Sie müssen eine Steckdose für das Uitextfield erstellen und dann eine "Login" -Schaltfläche erstellen. Machen Sie die Login-Schaltfläche eine Aktion und führen Sie diese Aktion aus

if self.textField.text == "719403" { 
self.performSegue(withIdentifier: "Segue", sender: nil) 
} 
Verwandte Themen