首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Swift和Parse在Segue到主ViewController的Facebook签名

问使用Swift和Parse在Segue到主ViewController的Facebook签名
EN

Stack Overflow用户
提问于 2015-10-14 17:41:40
回答 1查看 569关注 0票数 1

我正在使用Parse / Swift与自定义Facebook登录按钮。它成功地加载和用户可以登录,但当它成功登录时,只有一个闪光灯的MainViewController显示,然后它返回到登录页。

在Facebook成功登录后,我怎样才能让它要么使用segue,要么转到主视图控制器?Swift 2的正确代码是什么?

下面是我在SignInViewController中为我的Facebook按钮编写的代码:

代码语言:javascript
复制
 @IBAction func didTapFacebookConnect(sender: AnyObject) {
    let permissions = [ "public_profile", "email", "user_friends" ]

    PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions,  block: {
        (user: PFUser?, error: NSError?) -> Void in

        self.dismissViewControllerAnimated(true, completion: nil)

        if let user = user {
            if user.isNew {
                print("User signed up and logged in through Facebook!")
            } else {
                print("User logged in through Facebook!")
                self.dismissViewControllerAnimated(true, completion: nil)
            }
        } else {
              print ("The user cancelled the Facebook; login.")
        }
    })

编辑:

这是我的新代码,但仍然存在相同的问题,新的ViewController会短暂弹出,然后返回到页面中的标志。

这是我收到的错误..。警告:尝试在UITabBarController: 0x7face0d1c310上显示视图不在窗口层次结构中的0x7face0f619f0>!

代码语言:javascript
复制
@IBAction func didTapFacebookConnect(sender: AnyObject) {
    let permissions = [ "public_profile", "email", "user_friends" ]

    PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions,  block: {
        (user: PFUser?, error: NSError?) -> Void in

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

        if let user = user {
            if user.isNew {
                print("User signed up and logged in through Facebook!")


            } else {
                print("User logged in through Facebook!")

            }
        } else {
              print ("The user cancelled the Facebook; login.")
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-14 18:22:40

现在,如果用户成功地登录,您实际上是在两次调用Dis界视图控制器函数。我不确定你的视图控制器的故事板流程,但是这里没有证据表明你有一个分支。

代码语言:javascript
复制
dismissViewController(true,completion:nil)

但是,如果您创建了一个从登录控制器到存储板中应用程序主屏幕的segue,在成功注册或登录时,您应该使用适当的标识符调用下面的内容。

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

另外,提示是您应该检查PFUser.currentUser(),以查看是否存在缓存的用户实例,这样您就可以立即切换到主视图控制器,而无需用户每次登录。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33132099

复制
相关文章

相似问题

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