Отклонить представление входа parseUI из SKScene
Я использую ParseUI внутри приложения SpriteKit Swift.
Это мой LoginScene
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
, Как я могу закрыть видение при входе в систему и вернуться на страницу LoginScene?
2 ответа
Решение
Нашел решение: мне нужно использовать первый параметр вместо того, чтобы полагаться на контроллер делегата.
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
})
}
Этот вопрос не связан с Parse. Вместо этого я бы посмотрел на лучшую обработку метода dismissViewControllerAnimated().
Попробуйте переключиться:
self.view?.window?.rootViewController?.dismissViewControllerAnimated...
в
self.dismissViewControllerAnimated...