Estoy tratando de ajustar los controladores en Cocoa Touch. El problema principal es que me gustaría tener más de un controlador "en pantalla" a la vez: quiero tener una vista grande (con el controlador A) compuesta de vistas más pequeñas controladas por sus propios controladores (digamos B). Me gustaría tenerlo de esta manera porque la división hace que el código sea mucho más limpio. Lo malo es que los controladores adicionales (de tipo B) no son "ciudadanos de primera clase" en la pantalla, por ejemplo, no reciben las consultas y notificaciones de autorrotación. (Y no puede mostrar fácilmente los controladores modales, tienen que enviar el mensaje presentModal…
a su controlador principal).¿Controladores de vista múltiple en la pantalla a la vez?
¿Cuál es la diferencia entre los controladores A y B desde el punto de vista de Cocoa? ¿Mantiene el sistema algún tipo de puntero al "controlador frontal", uno privilegiado al que envía notificaciones y esas cosas? ¿Por qué los otros controladores no los reciben, a pesar de que sus puntos de vista están en la pantalla? ¿Tener varios controladores "en pantalla" es considerado un truco? ¿O es compatible y solo me falta algún punto? Gracias.
Más sobre el problema que estoy tratando de resolver: Estoy escribiendo un navegador de fotos simple. Las fotos se muestran en pantalla completa, el usuario puede deslizar hacia la izquierda o hacia la derecha para cambiar las fotos. El controlador A se encarga de la parte de desplazamiento y los controladores B se encargan de cada fotografía.
Aislamiento B parecía una buena idea, ya que las fotos se cargan desde la red y hay muchas cosas que pueden suceder, como la red podría estar abajo, etcétera. En el controlador B, el código es bastante simple, ya que B solo funciona con una foto en particular. Si moviera el código al controlador A, las cosas se pondrían complicadas.
Lo único que no me gusta de la solución actual es que tengo que trabajar manualmente para que B no sea un controlador de "primera clase". Tengo que pasar algunas llamadas manualmente de A a B y cuando B quiere mostrar un diálogo modal, tiene que enviar el presentModal…
a A. Lo cual es feo.
Buena respuesta, gracias.Sé que los puntos de vista aparecen en la pantalla, no en los controladores, es por eso que seguí escribiendo "en pantalla" entre comillas, lo que significa "tener su vista en la pantalla". Escribiré más sobre la situación en la pregunta. – zoul