iOS-如何使用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的方法


杨__羊羊
浏览 395回答 3
3回答

慕标琳琳

如果情节提要存在于情节提要中,并且在两个视图之间都有一个情节标识符,则可以使用以下方式以编程方式调用它: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)}

喵喔喔

如果情节提要存在于情节提要中,并且在两个视图之间都有一个情节标识符,则可以使用以下方式以编程方式调用它:self.performSegueWithIdentifier("yourIdentifierInStoryboard", sender: self)如果您在导航控制器中let viewController = YourViewController(nibName: "YourViewController", bundle: nil)        self.navigationController?.pushViewController(viewController, animated: true)我将建议您使用导航控制器的第二种方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS