Ios 应该让塞格开火两次吗
我现在遇到了一个奇怪的问题。我有一个故事板,它有一个按钮Ios 应该让塞格开火两次吗,ios,swift,Ios,Swift,我现在遇到了一个奇怪的问题。我有一个故事板,它有一个按钮viewController a。通过该按钮,我在情节提要中创建了一个序列,指向viewController B。单击按钮时,将触发一个序列 该按钮是一个登录按钮,因此我需要在执行segue之前验证登录详细信息 在ViewController A中,当按下按钮时,我有以下代码: @IBAction func SignInButtonPressed(_ sender: Any) { guard let email = usernam
viewController a
。通过该按钮,我在情节提要中创建了一个序列,指向viewController B
。单击按钮时,将触发一个序列
该按钮是一个登录按钮,因此我需要在执行segue之前验证登录详细信息
在ViewController A
中,当按下按钮时,我有以下代码:
@IBAction func SignInButtonPressed(_ sender: Any) {
guard let email = username.text , username.text != "" else {
return self.successLogin = false
}
guard let pass = password.text , password.text != "" else {
return self.successLogin = false
}
AuthService.instance.loginUser(email: email, password: pass) { (success) in
if success {
self.successLogin = true
} else {
self.displayAlertView(title: USER_LOGIN_FAILED_TITLE, message: USER_LOGIN_FAILED_MESSAGE)
}
}
}
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
if successLogin != true && identifier == "homeSegue" {
self.displayAlertView(title: USER_LOGIN_FAILED_TITLE, message: USER_LOGIN_FAILED_MESSAGE)
return false
} else {
return true
}
}
但是,第一次单击将在shouldPerformSegue
中显示警报,然后第二次单击将允许登录
任何关于如何解决此问题的建议都会很有帮助
谢谢您应该在您的
AuthService
成功关闭回调中执行segue,您还应该从按钮中删除unwind segue,该按钮必须仅执行登录逻辑,如果登录顺利,则必须执行segue,但不能在此之前执行
AuthService.instance.loginUser(email: email, password: pass) { (success) in
if success {
self.successLogin = true
self.performSegue(withIdentifier: "homeSegue", sender: self)
} else {
self.displayAlertView(title: USER_LOGIN_FAILED_TITLE, message: USER_LOGIN_FAILED_MESSAGE)
}
}
现在该工作了
performsgue(带有标识符:“homeSegue”,发件人:self)
嗨,雷纳,谢谢你的评论,我解决了我的问题,我需要从viewcontroller创建一个segue,用于测试我从按钮创建的目的。因此,当按钮被点击时,即使用户未经验证,它也会执行该步骤。当用户被验证时,它将执行两次。欢迎您,很高兴帮助您@chirag90致以最良好的问候,并祝您代码愉快