我使用数字 - 按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")
}
}
}
故事板示例:
注意:在App返回LoginViewController之后我再次点击SignUp Button后可以成功进入SignUpViewController,因为Digits是第一次注册设备,所以为什么没有数字移动到下一个View Controller而不是返回LoginViewController,任何用户都不会知道他是否已成功注册!
答案 0 :(得分:0)
您可以通过添加以下代码来解决问题。应该在函数执行后调用闭包。
let deadline = DispatchTime.now() + .seconds(1)
DispatchQueue.main.asyncAfter(deadline: deadline)
{
self.performSegue(withIdentifier: "toSignUpVC", sender: self)
}