2012-01-22 25 views
9

Quizás me esté perdiendo algo simple. Agregué una transición modal de un botón a un controlador de vista. Luego agregué algunos pasos para preparar ForSegue (y verifiqué que había nombrado el segue correctamente). He hecho esto algunas otras veces sin ningún problema.Segue no llamando a prepareForSegue

Ahora, cuando hago clic en el botón, se abre la ventana modal, pero el método prepareForSegue no se activa. Traté de poner una declaración de registro en prepareForSegue antes de que incluso compruebe la descripción de la etiqueta (por lo que teóricamente debería iniciarse para cualquier transición). Pero no consigo nada registrado.

¿Alguna idea?

Respuesta

9

Bueno, encontré el error de novato que sospechaba. Dupliqué un VC y olvidé configurar su clase para mi nueva clase de VC.

+0

Hice exactamente el mismo error !!! divertido! – Armen

+0

Estoy presentando como noob [) – WINSergey

0

Cablee el Segue al VC, no el botón. Luego, en el caso touchUpInside, poner

[self performSegueWithIdentifier:@"segueid" sender:nil]; 

casi siempre cablea el segue hasta ya sea el VC o una tableviewcell (si estoy usando un televisor celular estática)

+2

Estoy seguro de que esto funcionaría, pero el objetivo de segues es hacer esto por mí, ¿no? En todos mis otros pasos, no ha sido necesario hacer esto. –

+0

Tiene razón, debería funcionar como lo tiene. Solo me gusta tener un poco más de control. Compruebe que efectivamente tiene el botón conectado (elimine la transición y agréguela de nuevo asegurándose de que tiene el botón seleccionado en la vista del guión gráfico antes de arrastrar el control al otro controlador virtual. –

13

Conexión de un segue de un botón a la el siguiente controlador es la forma correcta de conectarlo, solo recuerde que se llama al prepareForSegue: en el VC que posee el botón no el controlador entrante. Obtenga el controlador entrante llamando al [segue destinationViewController].

+0

Gracias, pero lo he comprobado y estoy llamando prepareForSegue en el VC que posee el botón. –

0

Debe establecer el identificador de reutilización de la celda antes de llamar a la segue. Intenté muchas soluciones como las anteriores y comprobé la configuración de VC pero no configuré el identificador de reutilización de la celda del prototipo.

Solo después de configurar esto en "Célula", funcionó finalmente.

Cuestiones relacionadas