Facebook登录tvOS后失败

时间:2016-01-04 22:21:42

标签: swift segue facebook-login tvos

使用Facebook的新tvOS SDK成功登录后尝试转换为新的视图控制器时出现错误:

警告:尝试在FBSDKDeviceLoginViewController上显示Reconnect.LoadingViewController,其视图不在窗口层次结构中!

我实施了Facebook的委托方法:

func deviceLoginButtonDidLogIn(button: FBSDKDeviceLoginButton) {
    self.performSegueWithIdentifier("segueToLoading", sender: nil)
}

错误信息是说正在被解雇的FBSDKDeviceLoginViewController执行segue,当我打印出self时,情况并非如此,这确实是我的视图控制器。任何人都知道怎么解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

这是我们将在下一个版本中修复的错误。 FBSDKDeviceLoginViewController(显示确认代码的模式对话框)应在解雇完成后通知其代理人(您的视图控制者)。在此期间,您可以使用此代码段作为解决方法,以便视图控制器等待FBSDKDeviceLoginViewController转换(解雇)完成:

    if let t = self.presentedViewController?.transitionCoordinator() {
      t.animateAlongsideTransition(nil, completion: {
        (UIViewControllerTransitionCoordinatorContext c) -> Void in
        self.performSegueWithIdentifier("segueToLoading", sender: self)
      })
    } else {
      // the 'else' is just so that this same code will work after we fix the bug in the SDK.
      self.performSegueWithIdentifier("segueToLoading", sender: self)
    }