如何使用swift以编程方式继续

我正在创建一个使用Facebook SDK来认证用户的应用程序。 我试图将facebook逻辑合并到一个单独的类中。 这里是代码(简单起见):

import Foundation

class FBManager {
    class func fbSessionStateChane(fbSession:FBSession!, fbSessionState:FBSessionState, error:NSError?){
        //... handling all session states
        FBRequestConnection.startForMeWithCompletionHandler { (conn: FBRequestConnection!, result: AnyObject!, error: NSError!) -> Void in

            println("Logged in user: n(result)");

            let storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
            let loggedInView: UserViewController = storyboard.instantiateViewControllerWithIdentifier("loggedInView") as UserViewController

            loggedInView.result = result;

            //todo: segue to the next view???
        }
    }
}

我正在使用上面的类方法来检查会话状态更改,并且它工作正常。

问:一旦我获得了用户的数据,我如何才能继续使用这个自定义类中的下一个视图?

编辑:只是要清楚,我有故事板上的标识符segue,我试图找到一种方法来执行segue从类不是视图控制器


如果您的segue存在于两个视图之间的segue标识符的故事板中,则可以使用以下代码以编程方式调用它:

performSegue(withIdentifier: "mySegueID", sender: nil)

对于旧版本:

performSegueWithIdentifier("mySegueID", sender: nil)

你也可以这样做:

presentViewController(nextViewController, animated: true, completion: nil)

或者,如果您在导航控制器中:

self.navigationController?.pushViewController(nextViewController, animated: true)

您可以使用NSNotification

在你的自定义类中添加一个post方法:

NSNotificationCenter.defaultCenter().postNotificationName("NotificationIdentifier", object: nil)

在您的ViewController中添加一个观察者:

NSNotificationCenter.defaultCenter().addObserver(self, selector: "methodOFReceivedNotication:", name:"NotificationIdentifier", object: nil)

在你的ViewController中添加函数:

func methodOFReceivedNotication(notification: NSNotification){
    self.performSegueWithIdentifier("yourIdentifierInStoryboard", sender: self)
}

你可以像这样使用segue:

self.performSegueWithIdentifier("push", sender: self)
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if segue.identifier == "push" {

    }
}
链接地址: http://www.djcxy.com/p/61277.html

上一篇: How to segue programmatically using swift

下一篇: How to configure embedded view controllers using iOS6 style embed seque