Comprender performSegueWithIdentifier

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

¡Gracias!

Primero, debe configurar el segue en su storyboard y darle el identificador apropiado . (Haga clic en el segue (panel izquierdo) y luego click Atributos (panel derecho).

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

Después de esto, a su controller de vista se le enviará el prepareForSegue:sender: Usted anula este método en la subclass de controller de vista y puede configurar el controller de vista de destino de la siguiente manera:

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

Etcétera. El sender en este método será el object que utiliza como sender en la llamada al método original.

La mayoría de los segues se inician automáticamente como resultado de alguna interacción del usuario. Por ejemplo, si tiene un segue que se conecta desde un button a una escena en un storyboard, cuando se toca el button, segue se iniciará automáticamente.

Ocasionalmente, tiene sentido disparar un segue mediante progtwigción, 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, por lo que puede crear un segue, asignar un identificador e invocar -performSegueWithIdentifier:sender: at runtime.

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

En prepareForSegue:sender: tiene la posibilidad de configurar el prepareForSegue:sender: ahí es donde le pasaría los datos que necesita. Se analiza en las Competencias de aplicaciones de Cocoa para iOS .

Hoy me he encontrado con el problema de performSegueWithIdentifier: no se está ejecutando debido al hecho de no haber configurado una queue de delegates en mi session de URL.

Por lo tanto, verifique si realmente está configurando una queue de delegates cuando cree su URLSession, de lo contrario, URLSession creará su propia count.

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

Menciono esto aquí porque con frecuencia veo el event handling URLSession terminando llamando a algún tipo de actividad relacionada con la interfaz de usuario. Y performSegue necesita ejecutarse en main, o simplemente no hará nada.