使用 Facebook SDK 进行身份验证后转到下一个视图

Posted

技术标签:

【中文标题】使用 Facebook SDK 进行身份验证后转到下一个视图【英文标题】:Segue to next view after authenticating with Facebook SDK 【发布时间】:2015-10-19 16:56:01 【问题描述】:

当带有我的 Facebook 登录按钮的视图控制器加载进来时,它会检查访问令牌以查看用户是否已经登录:

if(FBSDKAccessToken.currentAccessToken() == nil)
    
        //user not logged in
        print("User is not logged in")
     else 
        print("User is logged in")

这工作正常,因为当我打开我的应用程序时显示“用户已登录” 所以我在打印语句下添加了一个segue:

self.performSegueWithIdentifier("mySegueID", sender: nil)

它仍然显示它已登录,但不执行 segue。 segue ID 是正确的。我什至尝试过获取故事板并通过 ID 获取视图控制器然后呈现它,但这也不起作用。有什么想法吗?

【问题讨论】:

【参考方案1】:

这样试试

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

【讨论】:

谢谢约翰,现在就试试吧。 嗯。那仍然对我不起作用。我使用 Facebook 登录,然后返回到我的第一个视图控制器并返回到注册视图控制器和控制台打印“用户已登录”,但 segue 仍然没有发生。 好的,现在尝试使用 super 而不是 self。如果它不起作用,只需覆盖 performSegueWithIdentifier super.performSegueWithIdentifier("signUpToMap", sender: self) 没有用,self.performSegueWithIdentifier("signUpToMap", sender: superclass) 也没有用,它让我使用超类,超预期的'。'或'['后。现在去寻找最好的覆盖方式。 我试过let storyboard = UIStoryboard(name: "Main", bundle: nil)let vc = storyboard.instantiateViewControllerWithIdentifier("mapView") as! ViewControllerself.presentViewController(vc, animated: true, completion: nil),也试过self.showViewController,但都没有打开我称之为“mapView”的ViewController类视图:/【参考方案2】:

问题是我试图从 viewWillAppear 方法中呈现视图。通过将其移至 viewDidAppear 方法已解决此问题。

【讨论】:

以上是关于使用 Facebook SDK 进行身份验证后转到下一个视图的主要内容,如果未能解决你的问题,请参考以下文章

Facebook iOS SDK 和护照-facebook 身份验证

Facebook 身份验证使用 php sdk 和 Yii 框架

如何使用带有 iOS SDK 的 Facebook 身份验证通过 DynamoDB 和 Cognito 存储用户信息

使用 Facebook 令牌的 Firebase Unity SDK 身份验证

Android + Facebook SDK:“由于应用名称不匹配,无法对应用进行身份验证。”

iPhone / iOS Facebook SDK - 您可以在应用内登录并保留登录凭据吗?