Comprender performSegueWithIdentifier

¿Puede alguien más entendido de lo que yo explico performSegueWithIdentifier:sender: para mí? Necesito cambiar las vistas (y las clases) y también llevar algunas NSStrings e ID a la clase de esa vista. Me preguntaba si esto es posible con performSegueWithIdentifier:sender:

¡Gracias!

Primero, debe configurar el segue en su guión gráfico y darle el identificador apropiado . (Haga clic en el segue (panel izquierdo) y luego haga clic en Atributos (panel derecho).

A continuación, puede vincular esto a botones o selección de filas de tabla de su guión gráfico, o puede llamarlo en código utilizando performSegueWithIdentifier:sender:

Después de esto, su controlador de vista recibirá el prepareForSegue:sender: message. Sobreescribe este método en su subclase de controlador de vista y puede configurar el controlador de vista de destino de la siguiente manera:

 TargetViewController *targetVC = (TargetViewController*)segue.destinationViewController; targetVC.string1 = string1; 

Etcétera. El sender de este método será el objeto que utilice como sender en la llamada al método original.

La mayoría de los segmentos se inician automáticamente como resultado de alguna interacción del usuario. Por ejemplo, si tiene un segue que está conectado desde un botón a una escena en un guión gráfico, cuando se toca el botón, el segue se iniciará automáticamente.

Ocasionalmente, tiene sentido desencadenar un cambio programático, por ejemplo, tiene una escena de puntajes altos que se muestra cuando el usuario gana una ronda de un juego. No hay forma de express el concepto de ganar en el guión gráfico en sí, de modo que puede crear un segue, asignarle un identificador e invocar -performSegueWithIdentifier:sender: en tiempo de ejecución.

El otro método relacionado con segue en UIViewController, -prepareForSegue -prepareForSegue:sender: es el método que debe sobrescribir para realizar cualquier personalización en el controlador de vista de destino.

En prepareForSegue:sender: tiene la posibilidad de configurar el destinationViewController : allí es donde le pasaría los datos que necesita. Se trata en las Competencias de aplicación Cocoa para iOS .

Hoy me encontré con el tema de performSegueWithIdentifier: no se ejecuta debido al hecho de no haber establecido una cola de delegado en mi sesión de URL.

Entonces, por casualidad, compruebe si realmente está configurando una cola de delegates al crear su URLSession, de lo contrario, URLSession creará su propia cuenta.

 urlSession = [NSURLSession sessionWithConfiguration:sessionConfigObject delegate:self delegateQueue:[NSOperationQueue mainQueue]]; 

Menciono esto aquí porque a menudo veo que el manejo de URLSession termina llamando a algún tipo de actividad relacionada con UI. Y performSegue necesita ejecutarse en main, o de lo contrario no hará nada.