Swift Segue无法正常工作?

温斯顿

我的Swift segue根本不起作用,也没有抛出任何错误。断点向我显示该应用程序已落在该行上,但没有任何反应:

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

该代码块是Facebook的登录表单:

if let accessToken: FBSDKAccessToken = FBSDKAccessToken.currentAccessToken() {
    PFFacebookUtils.logInInBackgroundWithAccessToken(result.token, block: {
        (user: PFUser ? , error : NSError ? ) - > Void in
        if user!.isNew {
            self.performSegueWithIdentifier("SignupSegue", sender: self)
        } else {
            self.navigateToInGame(true)
        }
    })
}

这是它应该调用的segue函数,但甚至没有实现:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
    {
        if (segue.identifier == "SignupSegue") {
            let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
            let vc = storyboard.instantiateViewControllerWithIdentifier("SignUpViewController") 
            self.showViewController(vc, sender: self)
        }
    }

有任何想法吗?

艾伦

通常,任何UI更新都必须在主线程中。我认为PFFacebookUtils.logInInBackgroundWithAccessToken在上述情况下,该块仍处于后台状态。也许触发showViewControllerin dispatch_async(dispatch_get_main_queue(), {}),看看是否有任何区别。

dispatch_async(dispatch_get_main_queue(), {
    let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyboard.instantiateViewControllerWithIdentifier("SignUpViewController")
    self.showViewController(vc, sender: self)
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章