Devolver datos de UIViewController en un UIPopoverController cuando se descarta el popover

Tengo un segundo controlador de vista configurado para mostrarse en un UIPoverController. Configuré un delegado en el segundo controlador de vista para que cuando el usuario toque el botón "Listo", pase los datos al primer controlador de vista. Los datos son una lista de selecciones que hace el usuario, no es una selección única.

Tengo problemas para encontrar una forma de devolver esos datos al primer controlador de vista si el usuario toca fuera de la ventana emergente y se descarta. En este momento, si el usuario toca un lado de la ventana emergente y se descarta, pierdo los datos.

Supongo que podría impedir que descarten la ventana emergente tocando fuera de ella, pero prefiero no hacerlo.

¿algunas ideas?

preguntado el 12 de junio de 12 a las 21:06

1 Respuestas

Cuando presenta el UIPopoverController, establece su delegate para ser self

Y luego agregue a la clase esta función

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
    YourViewController *controller =  popoverController.contentViewController;
    MyData *data = controller.yourData;
    //Do something with data
}

Esta función se llamará cuando se descarte el popover

Respondido el 12 de junio de 12 a las 21:06

Creo que es posible que deba implementar "popoverControllerShouldDismissPopover" si le preocupa que el usuario descarte el Popover tocando fuera del popover. - kevin horgan

sí, lo tengo, pero no creo que tenga acceso a los datos del segundo controlador de vista desde allí... - padin215

¡decir ah! ¡genial gracias! La única nota que haría es que necesita escribir el controlador de vista o de lo contrario recibirá una advertencia. - padin215

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.