成功验证后如何导航到查看控制器?

时间:2017-04-12 14:11:33

标签: swift3 ios10 twitter-fabric twitter-digits google-fabric

我使用数字 - 按Twitter API进行电话号码验证,这是一种快速方案:用户点击注册按钮ex: LoginViewController - > Digits API初始化以验证其电话号码 - >成功验证后,应用应移至下一个View Controller ex: HomeViewController,但会发生的情况是,当用户成功验证后,应用会返回上一个LoginViewController!这是我的代码:

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")
        }
    }

}

故事板示例:

Storyboard

注意:在App返回LoginViewController之后我再次点击SignUp Button后可以成功进入SignUpViewController,因为Digits是第一次注册设备,所以为什么没有数字移动到下一个View Controller而不是返回LoginViewController,任何用户都不会知道他是否已成功注册!

1 个答案:

答案 0 :(得分:0)

您可以通过添加以下代码来解决问题。应该在函数执行后调用闭包。

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