2016-03-21 13 views
0

So implementiert ich eine FB Login in meine App mit den folgenden im Hinblick controller.swift DateiSegue neue View-Controller

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) { 

    if error == nil 
    { 
     print("Login Successful") 
    } 
    else 
    { 
     print(error.localizedDescription) 
    } 

} 

Von diesem Punkt, obwohl ich nicht sicher bin, wie/wo eine Funktion aufzurufen segue Nach einem erfolgreichen Login bin ich neu bei swift, so dass jede detaillierte Erklärung großartig wäre.

+0

Der einfachste Weg, fügen Sie ein Segment in Storyboar d, weisen Sie einen Bezeichner zu, und rufen Sie 'performSegueWithIdentifier' – zcui93

Antwort

0

Code ist in Ordnung, in der gleichen Zeit müssen Sie die performSegueWithIdentifier implementieren für segue

enter image description here

use segue identifier in Push Method and give the proper connection 

wenn Sie Identifier verwenden, dann diese Zeile nennen, wo u self.performSegueWithIdentifier ("identifierName", Absender: Selbst-) benötigen

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) { 

    if error == nil 
    { 
     print("Login Successful") 
     self.performSegueWithIdentifier("identifierName", sender: self) 
    } 
    else 
    { 
     print(error.localizedDescription) 
    } 

} 

Wahl-2

if use `storyboard ID` with connection less 

für

Beispiel

I have given segue identifier in SeconViewController as in the image.

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) { 

    if error == nil 
    { 
     print("Login Successful") 
      let second = self.storyboard?.instantiateViewControllerWithIdentifier("SecondViewControllerSegue") as? SecondViewController 
    self.navigationController?.pushViewController(second!, animated: true) 
    } 
    else 
    { 
     print(error.localizedDescription) 
    } 

} 
+0

Ihr Problem ist gelöst oder nicht –

+0

Ja nach einigem Nachfragen bekam ich es endlich danke – bananibau5

+0

@ bananibau5 - willkommen Kumpel –

0

Deklarieren Sie eine segue zwischen Ihrem View-Controller in Storyboard die Kennung in Attribute Inspektoren zum Beispiel „showNexController“ gesetzt und das tun:

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) { 
    if (error) { 
    print("Process error") 
    } else if (result.isCancelled) { 
    print("Cancelled") 
    } else { 
    print("Logged in") 
    // Perform segue here 
    performSegueWithIdentifier("showNexController", sender: self) 
    } 
} 
+0

auf, also behalten Sie es in der gleichen Funktion richtig? Erstellen Sie keine neue Funktion? – bananibau5

+0

Sie müssen das Segment auslösen, wenn die Anmeldung erfolgreich ist, daher müssen Sie performSegueWithIdentifier innerhalb dieser Schließung aufrufen. Sie können eine separate Funktion erstellen, die performSegueWithIdentifier plus jede andere Logik hinzufügen, die Sie hinzufügen möchten, aber Sie müssen immer noch anrufen es innerhalb dieser Schließung. –

+0

Wenn Sie im eingeloggten Fall noch weitere Aktionen durchführen möchten, bevor Sie einen Übergang durchführen, können Sie Ihre Funktion deklarieren, andernfalls nicht. – Ro22e0

Verwandte Themen