MattBlack
MattBlack

Reputation: 3828

Segues in Swift

im new to swift / xcode. I am trying to set up a facebook login.

The login works fine but when the login is successful the segue doesnt appear to work. There are no errors it just doesnt go to the next viewcontroller.

I suspect the issue lies here somehow:

 self.performSegueWithIdentifier("showNew", sender: self)

any ideas?

import UIKit
import FBSDKCoreKit
import FBSDKLoginKit

class ViewController: UIViewController, FBSDKLoginButtonDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        if (FBSDKAccessToken.currentAccessToken()==nil){

            println("not Logged in")
        }

        else{
                println("Logged in!")

                self.performSegueWithIdentifier("showNew", sender: self)

        }

        var loginButton = FBSDKLoginButton()
        loginButton.readPermissions = ["public_profile","email","user_friends"]
        loginButton.center = self.view.center

        loginButton.delegate = self

        self.view.addSubview(loginButton)



        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


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


        if error == nil {

            println("Login Complete")



        }
        else
        {

            println(error.localizedDescription)
        }

    }


    func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) {

        println("User Logged Out!")
    }











}

Upvotes: 0

Views: 204

Answers (2)

Seema Kadavan
Seema Kadavan

Reputation: 2638

I assume that you want the app to move to next view controller after the FB login. Basically move on login success.

Move

self.performSegueWithIdentifier("showNew", sender: self)

to loginButton delegate.

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) 
{
        if (error == nil) 
        {
            println("Login Complete")
            self.performSegueWithIdentifier("showNew", sender: self)
        }
        else
        {
            println(error.localizedDescription)
        }
}

If your segue was not defined properly, the app would have crashed. Since it is not crashing at self.performSegueWithIdentifier, you can believe that it is defined.

Upvotes: 0

Nurdin
Nurdin

Reputation: 23883

Your forgot to declare the identifier.

enter image description here

Upvotes: 1

Related Questions