Как перейти к просмотру контроллера после успешной проверки?

Я использую API Digits — от Twitter для проверки номера телефона, быстрый сценарий: пользователь нажимает кнопку «Зарегистрироваться»ex: LoginViewController -> Digits API инициализируется, чтобы подтвердить свой номер телефона -> после успешной проверки приложение должно перейти на следующий контроллер представления ex: HomeViewController, но что происходит, когда пользователь успешно проверен, приложение возвращается к предыдущему, который является LoginViewController! вот мой код:

Логинвиевконтроллер

// MARK: - Sign Up Button
@IBAction func signUpPressed(_ sender: Any) {

    let configuration = DGTAuthenticationConfiguration(accountFields: .defaultOptionMask)

    configuration?.appearance = DGTAppearance()
    configuration?.appearance.backgroundColor = UIColor.white
    configuration?.appearance.accentColor = UIColor.red

    // Start the Digits authentication flow with the custom appearance.
    Digits.sharedInstance().authenticate(with: nil, configuration:configuration!) { (session, error) in
        if session != nil {

            //Print Data
            print(session?.phoneNumber!)
            print(session?.userID!)

            // Navigate to the main app screen to select a theme.
            self.performSegue(withIdentifier: "toSignUpVC", sender: self)

        } else {
            print("Error")
        }
    }

}

Пример раскадровки:

Раскадровка

ПРИМЕЧАНИЕ: после того, как приложение вернется в LoginViewController, я могу успешно перейти в SignUpViewController после повторного нажатия кнопки SignUp, потому что Digits зарегистрировал устройство в первый раз, поэтому почему Digits не переходит к следующему представлению? Controller вместо того, чтобы возвращаться к LoginViewController, любой пользователь никогда не узнает, успешно он зарегистрировался или нет!


person Hussein    schedule 12.04.2017    source источник


Ответы (1)


Вы можете решить свою проблему, добавив приведенный ниже код. Закрытие должно вызываться после выполнения функции.

   let deadline = DispatchTime.now() + .seconds(1)
   DispatchQueue.main.asyncAfter(deadline: deadline)  
   {
    self.performSegue(withIdentifier: "toSignUpVC", sender: self)
   }
person Dogukan Agirbasli    schedule 12.05.2017