首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >IOS -如何使用swift以编程方式进行分段

IOS -如何使用swift以编程方式进行分段
EN

Stack Overflow用户
提问于 2014-12-22 22:00:39
回答 11查看 249.6K关注 0票数 202

我正在创建一个使用Facebook SDK对用户进行身份验证的应用程序。我正在尝试将facebook的逻辑整合到一个单独的类中。下面是代码(为简单起见进行了删减):

代码语言:javascript
复制
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???
        }
    }
}

我正在使用上面的类方法来检查会话状态的变化,它工作得很好。

Q:一旦我有了用户的数据,我如何从这个自定义类中分割到下一个视图?

EDIT:为了清楚起见,我在故事板上有一个带有标识符的片段,并且我正在尝试找到一种方法来从不是视图控制器的类执行片段

EN

回答 11

Stack Overflow用户

发布于 2014-12-22 22:14:51

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

代码语言:javascript
复制
performSegue(withIdentifier: "mySegueID", sender: nil)

对于较旧的版本:

代码语言:javascript
复制
performSegueWithIdentifier("mySegueID", sender: nil)

您还可以执行以下操作:

代码语言:javascript
复制
presentViewController(nextViewController, animated: true, completion: nil)

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

代码语言:javascript
复制
self.navigationController?.pushViewController(nextViewController, animated: true)
票数 358
EN

Stack Overflow用户

发布于 2018-04-03 14:29:18

如果您的segue存在于故事板中,并且两个视图之间有一个segue标识符,那么您可以使用以下命令以编程方式调用它

代码语言:javascript
复制
self.performSegueWithIdentifier("yourIdentifierInStoryboard", sender: self)

如果您在导航控制器中

代码语言:javascript
复制
let viewController = YourViewController(nibName: "YourViewController", bundle: nil)        
self.navigationController?.pushViewController(viewController, animated: true)

我会推荐你使用导航控制器的第二种方法。

票数 20
EN

Stack Overflow用户

发布于 2015-02-10 20:48:10

您可以使用NSNotification

在您的自定义类中添加post方法:

代码语言:javascript
复制
NSNotificationCenter.defaultCenter().postNotificationName("NotificationIdentifier", object: nil)

在ViewController中添加观察者:

代码语言:javascript
复制
NSNotificationCenter.defaultCenter().addObserver(self, selector: "methodOFReceivedNotication:", name:"NotificationIdentifier", object: nil)

在你的ViewController中添加函数:

代码语言:javascript
复制
func methodOFReceivedNotication(notification: NSNotification){
    self.performSegueWithIdentifier("yourIdentifierInStoryboard", sender: self)
}
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27604192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档