斯威夫特的Segues

时间:2015-07-13 01:18:04

标签: xcode swift

我是swift / xcode的新手。我正在尝试建立一个Facebook登录。

登录工作正常,但登录成功后,segue似乎无法正常工作。它没有错误,只是没有去下一个viewcontroller。

我怀疑问题出在这里:

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

任何想法?

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!")
    }











}

2 个答案:

答案 0 :(得分:1)

您忘了申报标识符。

enter image description here

答案 1 :(得分:0)

我假设您希望应用程序在FB登录后移动到下一个视图控制器。基本上是登录成功。

移动

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

到loginButton委托。

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

如果你的segue没有正确定义,应用程序就会崩溃。由于它没有在self.performSegueWithIdentifier崩溃,您可以相信它已被定义。