Отклонить представление входа 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...
Другие вопросы по тегам