2016-08-09 232 views
-4

Dies ist Haupt-Storyboard meiner App:Validieren Passwort in Einzeltextfeld Swift

enter image description here

Ich habe einen iOS-App, wo ich den Text innerhalb des Etiketts von „Set Passcode“ auf "ändern muß Bestätigen Sie den Passcode "nach Eingabe von 4 Ziffern und löschen Sie das Textfeld. Die Eingabe des Passworts erfolgt durch Klicken auf die Schaltflächen.

Nun muss ich noch einmal die 4 Ziffern geben und beide Einträge mit den Standardwerten der Benutzer vergleichen. Ich weiß, wie man das mit zwei Textfeldern macht, aber ich weiß nicht, wie man es mit einem einzigen Textfeld erreicht.

+1

Sie sollten keine App, die ein Passwort in NSUserDefaults speichert, in den App Store legen ... – Kametrixom

+0

Sie können Ihr Passwort in Variable speichern. Wenn Sie auf Ihre Schaltfläche tippen, speichern Sie die Eingabe in der privaten Variablen, löschen Sie das Textfeld, ändern Sie den Beschriftungstext. Testen Sie in Ihrer tapButton-Methode, ob Sie das erste Passwort gespeichert haben. Wenn es zwei Eingaben und ein Kennwort vergleicht, die in NSUserDefaults gespeichert werden. –

Antwort

3

Erstellen Sie ein Label, TextField und einen Button, fügen Sie sie alle zu Ihrem View-Controller hinzu und erstellen Sie eine IBAction für den Button. Stellen Sie im Attribut-Inspektor die Tag-Nummer der Schaltfläche auf 2 ein. Sie können den TextFields Keyboard-Typ auch in Number Pad ändern.

Setup

Jetzt drei Variablen hinzufügen:

var Password1: String? 
var Password2: String? 
var Offical_Password: String? 

In der ViewDidLoad Funktion stellen Sie die Tasten-Tag gleich 1:

Button.tag = 1 

Diese beiden unten aufgeführten Funktionen behandeln die Einstellungen das TextField und das Label. Es wird auch prüfen, ob Password1 auf Password2 gleich ist und dann die Official_Password:

func Password() { 
    if (TextField.text == "") { 
     // Password is required 
    } else { 
     Lable.text = "Confirm Password" 
     Password1 = TextField.text 
     TextField.text = "" 
    } 
} 


func Password_Confimed() { 
    if TextField.text == "" { 
     // Confirmation Password is required 
    } else { 
     Password2 = TextField.text 
    } 
    if Password1 == Password2 { 
     Lable.text = "Done" 
     Offical_Password = Password1 
     TextField.text = "" 
    } else { 
     // Handle error 
    } 
} 

schließlich in der IBAction Funktion add:

@IBAction func Button_Pressed(sender: AnyObject) { 
    if Button.tag == 1 { 
     Password() 
     Button.tag = 2 
    } else if Button.tag == 2 { 
     Password_Confimed() 
     // Go to another View Controller 
    } 
} 

The Final Result

Sie müssen hinzufügen, wie Sie wollen B. um sicherzustellen, dass das Passwort nicht zu schwach ist und was Sie wirklich tun möchten, wenn das Passwort festgelegt wird.

+0

danke für den Code .. @Andrew Montague – SaiPavanParanam

+0

Wenn dies für Sie funktioniert, dann bitte markieren Sie es als die richtige Antwort @SaiPavanParanam –

+0

Ihr Code arbeitete für mich ... aber ich habe nicht genug Popularität, um Ihre Antwort zu wählen. Tut mir leid, dass ich nicht gewählt habe. Ich schätze deine Hilfe sehr. Vielen Dank – SaiPavanParanam