2012-02-03 9 views
6

iOS 5 presenta el concepto de controlador de vista contenedor personalizado y proporciona API como addChildViewController. Pregunta: ¿puede agregar un controlador de vista como un niño y todavía presentarlo usando presentViewController? ¿Hacer esto último automáticamente lo convierte en un controlador de vista infantil del presentingViewController?addChildViewController y presentViewController

Respuesta

9

No se supone que se use.

La relación padre/hijo es para cuando un controlador de vista tiene subvistas que son administradas por sus propios controladores de vista, por ejemplo un UITabBarController, donde el controlador de vista padre dibuja las pestañas y los controles de vista secundarios dibujan el contenido de cada pestaña .

Si presenta un controlador de vista con presentViewController, generalmente ocupa toda la pantalla o aparece en un modo modal para que el controlador de vista que presenta ya no tenga el control. En ese escenario, no hay ninguna razón para que el presentador sea el padre porque no necesita cooperar con el controlador presentado; simplemente se quita de en medio hasta que el controlador presentado se descarta nuevamente.

¿Por qué querías hacer esto? Si solo se trata de que los controladores de vista se refieran entre sí y puedan pasar datos, existen otras maneras de hacerlo (por ejemplo, el patrón de delegado, NSNotifications o incluso solo una propiedad que vincule los dos).

+0

Debe haber una referencia al controlador de vista presentado en alguna parte. ¿Lo tiene el sistema? –

Cuestiones relacionadas