ios - clean - swift vip
Swift prepareForSegue cancel (2)
Podría hacer una sesión desde un controlador de vista, no desde un botón específico. Lo haces presionando ctrl desde el botón amarillo en la parte superior del VC en el guión gráfico. ¡Recuerda dar un identificador al segue!
Luego, puede crear una función IBAction desde el botón de inicio de sesión y realizar la función Segmentar con identificador. Debería verse algo como esto:
@IBAction func loginButtonTapped(sender: UIButton) {
if loginSuccess {
performSegue(withIdentifier: "login", sender: nil)
}
}
luego, en preparar (:), podría hacer una configuración adicional para el segmento, ya que se llamará antes de que se lleve a cabo el segmento real.
Estoy tratando de implementar una pantalla de inicio de sesión, cuando se hace clic en inicio de sesión, se ejecuta el "inicio de sesión".
Agregué una anulación de prepareForSegue () para intentar cancelarla si falla el inicio de sesión, pero no veo ningún método para cancelar la operación si hay una falla.
¿Cuál es la mejor manera de hacer esto?
Debe anular shouldPerformSegueWithIdentifier
y devolver falso si el inicio de sesión falló:
override func shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?) -> Bool {
if let ident = identifier {
if ident == "YourIdentifier" {
if loginSuccess != true {
return false
}
}
}
return true
}
ACTUALIZADO PARA SWIFT 3 El método Swift 3 ahora se llama shouldPerformSegue
override func shouldPerformSegue(withIdentifier identifier: String?, sender: Any?) -> Bool {
if let ident = identifier {
if ident == "YourIdentifier" {
if loginSuccess != true {
return false
}
}
}
return true
}
// extendido
Si llama a performSegueWithIdentifier mediante programación, no se llamará a este método, pero no es necesario para eso, puede llamarlo simplemente su inicio de sesión exitoso, de lo contrario, ignórelo:
if loginSuccess {
performSegueWithIdentifier("login", sender: nil)
}