如何使用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