iphone swift segue ios8 uistoryboardsegue

iphone - Usando el método shouldPerformSegueWithIdentifier() en Swift



ios8 uistoryboardsegue (2)

Estoy tratando de usar el método shouldPerformSegueWithIdentifier () de swift, pero acepta 2 argumentos. Estos son (identificador: String !, remitente: AnyObject)

Mi objetivo principal es ejecutar el código cuando presiono un botón de inicio de sesión en mi guión gráfico, y dependiendo de una serie de comprobaciones, devuelvo VERDADERO o FALSO, dependiendo de si se proporcionaron el nombre de usuario y la contraseña correctos. Asi que aqui están mis preguntas:

  1. ¿Qué se supone que debo usar como identificador? La documentación de Apple explica que el identificador es una cadena que identifica el segue desencadenado. Supongamos que mi segue tiene el nombre de loginSegueProcess. ¿Cómo podría usarlo en mi ViewController tat asignado a mi UIView? Lo que ocurre es que declaro el método en mi código y me obliga a especificar ambos argumentos (identificador y remitente). ¿Cómo podría proporcionar los argumentos?

  2. ¿Este método realmente satisfará mis necesidades? Con esto me refiero a si se detendrá la transición de segue cada vez que se haga clic en mi botón de inicio de sesión y, dependiendo de si se proporcionaron las credenciales correctas, te llevará a la siguiente vista o se mostrará, por ejemplo, un AlertView.

Finalmente, estaba pensando que el método performSegueWithIdentifier (args) me ayudaría también. ¿Alguien sabe la diferencia entre ellos?

¡Muchas gracias por adelantado!


No puede invocar el método shouldPerformSegueWithIdentifier() usted mismo. Se llamará automáticamente justo antes de la transición a la vista siguiente, dando la oportunidad de determinar si la transición debe tener lugar o. Puede devolver SÍ / NO de este método condicionalmente. Si su condición no implica ninguna llamada al servidor, una simple comprobación lógica de este método será suficiente para usted.

performSegueWithIdentifier() se utiliza para invocar un segue programmatically. Considere el caso anterior con una llamada de red, puede devolver NO de shouldPerformSegueWithIdentifier() inicialmente ya que la autenticación está en marcha. Después de obtener la respuesta del servidor si tiene éxito, puede llamar a la segue para ejecutar con performSegueWithIdentifier (Aquí el identificador es la identificación que ha proporcionado en el guión gráfico). Antes de asegurarse de que se supone que debe devolver SÍ desde shouldPerformSegueWithIdentifier() .

Ahora un tercer caso si su segue se está conectando desde el botón de inicio de sesión (Debe conectarlo desde el controlador mismo). La comprobación de shouldPerformSegueWithIdentifier ya no es necesaria. Puede llamar a la segue con performSegueWithIdentifier() después de obtener la respuesta performSegueWithIdentifier() del servidor


¿No es eso lo que quieres hacer?

override func shouldPerformSegueWithIdentifier(identifier: String!, sender: AnyObject!) -> Bool { if identifier == "LoginSuccessSegue" { // you define it in the storyboard (click on the segue, then Attributes'' inspector > Identifier var segueShouldOccur = /** do whatever you need to set this var to true or false */ if !segueShouldOccur { println("*** NOPE, segue wont occur") return false } else { println("*** YEP, segue will occur") } } // by default, transition return true }