2017-12-16 5 views
0

Ich habe eine Login-Funktion in meiner App, die ich erstelle und es schien, als ob es gut funktionierte. Ich benutze Parse. Hier ist die Login-Funktion.Swift 3 Geht zurück zur vorherigen Ansicht Controller

So prüft die erste Überprüfung, ob die Textfelder Benutzername und Kennwort leer sind, und wenn ja, wird eine Warnung erstellt. Wenn ich die App zum ersten Mal starte, funktioniert es wie ein Zauber. Wenn ich mich jedoch mit einem Benutzer anmelde und mich abmelde, werde ich zum Anmeldebildschirm weitergeleitet, wo der Benutzername und das Passwort leer sind. Und ich klicke auf login und erhalte die entsprechende Warnung: "Bitte vergewissere dich, dass alle Felder ausgefüllt sind" und wenn ich sie ablehne, führt sie automatisch den Übergang durch, als ob die Anmeldung erfolgreich gewesen wäre. Kann mir bitte jemand helfen?

@IBAction func logOut(_ sender: AnyObject) { 

    PFUser.logOut() 
    performSegue(withIdentifier: "logOutSeg", sender: self) 

} 

Auch dies ist meine erstellen Alarm-Funktion:

func createAlert(title: String, message: String) { 

    let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.alert) 

    alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action) in 
     self.dismiss(animated: true, completion: nil) 
    })) 

    self.present(alert, animated: true, completion: nil) 

} 

Wenn ich die createAlert Verfahren nach dem ersten entfernen if-Anweisung, es Dinge tut richtig so vorausgesetzt, ich bin es in dem ist.

+1

Ich wundere mich, wenn Sie eine Seque zu Ihrem Login-Bildschirm machen und dann ein Self.Dismiss innerhalb der OK-Aktion. Könnte es sein, dass die Entlassung den Übergang zunichte macht? – ryantxr

+0

@ryantxr Ich mache eine Überleitung zum Login-Bildschirm, wenn sie sich abmelden, aber ich sehe nirgends, wo ich die self.dismiss-Operation anrufe – tee

+1

Siehe: alert.addAction – ryantxr

Antwort

1

Wenn Sie sich zum ersten Mal vom zweiten Bildschirm abmelden, könnte dies passieren, wenn es zum ersten Logging-Bildschirm kommt. Deshalb erhalten Sie einen leeren Benutzernamen und ein Passwort. Wenn Sie den alertviewcontroller im Anmeldebildschirm durch Aufrufen von self.dismiss(animated: true, completion: nil) ablehnen, wird der aktuelle Ansichtscontroller gelöscht. Schließen Sie den eingeloggten Bildschirm (2. Bildschirm) ab, anstatt nach dem Abmelden einen Neustart durchzuführen.

+0

Okay, danke, ich bin im Grunde von self.dismiss losgeworden und es funktioniert ! – tee

Verwandte Themen