0

我在 SpriteKit Swift 应用程序中使用 ParseUI。

这是我的登录场景

class LoginScene: SKScene, PFLogInViewControllerDelegate, PFSignUpViewControllerDelegate {

    func showLoginView() {
        let nativeLogin = NativeLoginViewController()
        nativeLogin.fields = PFLogInFields.Default
        nativeLogin.delegate = self
        self.view?.window?.rootViewController?.presentViewController(nativeLogin, animated: true, completion: nil)
    }

    func logInViewController(logInController: PFLogInViewController!, didLogInUser user: PFUser!) {
        println("login succeeded")
            self.view?.window?.rootViewController?.dismissViewControllerAnimated(true, completion: {() in
                println("dismissed loginviewcontroller suceeded")
                self.view?.presentScene(ModeMenuScene(size: self.view!.bounds.size))
            })
        }
    }
}

它确实打印login succeeded但不是dismissed loginviewcontroller succeeded。如何在登录时关闭 loginview 并返回到我的 LoginScene ?

4

2 回答 2

0

这个问题与 Parse 无关。相反,我会考虑更好地处理dismissViewControllerAnimated() 方法。

尝试切换:

self.view?.window?.rootViewController?.dismissViewControllerAnimated...

self.dismissViewControllerAnimated...
于 2014-12-19T18:16:56.740 回答
0

找到解决方案:我需要使用第一个参数而不是依赖委托控制器。

func logInViewController(logInController: PFLogInViewController!, didLogInUser user: PFUser!) {
    logInController.dismissViewControllerAnimated(true, completion: {() in
        self.view?.presentScene(GameScene(size: self.view!.bounds.size))  //Go to Game Scene
        return
    })
}
于 2014-12-21T15:19:33.543 回答