en mi aplicación tengo un botón que realiza una segue programáticamente:
- (void)myButtonMethod
{
//execute segue programmatically
[self performSegueWithIdentifier: @"MySegue" sender: self];
}
Me gustaría saber si hay una manera de hacer referencia a la vista de destino y pasarle algunos parámetros.
Sé que en el prepareForSegue
método, puedo referirme a él con:, myDestinationViewController *vc = [segue destinationViewController];
pero no sé cómo ejecutar esto segue programáticamente.
¿Tienes alguna idea?
Gracias yassa
ACTUALIZAR:
Lo siento por esta pregunta !!! Simplemente descubrí que, incluso si el segue se invoca mediante programación, el prepareForSegue
método se llama de todos modos y, por lo tanto, es posible pasar parámetros de la misma manera habitual.
ios
view
parameters
storyboard
segue
yassassin
fuente
fuente
Respuestas:
La respuesta es simplemente que no importa cómo se desencadena el segue.
El
prepareForSegue:sender:
método se llama en cualquier caso y aquí es donde pasa sus parámetros.fuente
Antigua pregunta, pero aquí está el código sobre cómo hacer lo que está pidiendo. En este caso, estoy pasando datos de una celda seleccionada en una vista de tabla a otro controlador de vista.
en el archivo .h de la vista trget:
en el archivo .m:
dataModel
puede serstring
,int
o como en este caso, es un modelo que contiene muchos elementosO...
fuente
Swift 4:
Swift 3:
fuente
Entiendo el problema de realizar el segue en un lugar y mantener el estado para enviar parámetros en preparación para el segue.
Descubrí una forma de hacer esto. Agregué una propiedad llamada userInfoDict a ViewControllers usando una categoría. y he anulado realizar segue con identificador también, de tal manera que si el remitente es uno mismo (significa el controlador mismo). Pasará este userInfoDict al siguiente ViewController.
Aquí, en lugar de pasar el UserInfoDict completo, también puede pasar los parámetros específicos, como remitente y anular en consecuencia.
1 cosa que debes tener en cuenta. no olvides llamar al método super en tu método performSegue.
fuente
En caso de que use una nueva versión rápida.
fuente