Puede configurar un controlador de navegación y una vista principal. Luego puede usar una vista de plantilla para los diseños de retrato y paisaje (2 vistas adicionales).
Usted tendrá que configurar los controles en la vista principal y asegúrese de que cada uno tiene una etiqueta única. No se usará su vista principal, en su lugar, copiará los controles en las dos vistas de plantilla y las configurará en función de cómo quiera que se vea cada vista. El beneficio de esto es que cada vista conservará su etiqueta, que se convierte en una pieza muy importante de esta implementación.
Hacer esto se utiliza un enfoque híbrido en lo que respecta a la escritura de un código de interfaz de usuario y el uso de Interface Builder. Después de obtener la configuración de dos plantillas, cree un identificador único para cada una. Tendrá que escribir algo de lógica para manejar la vista y sus subvistas. Un método recursivo para devolver una colección de estos en función de la plantilla que elija.
La lógica de la base de la raíz vista de la implementación del controlador tendrá que comprobar para isPortrait y en base a esto tendrá que cargar el punto de vista correcto basado en el identificador.
Experimente con este concepto y vea si le funciona. Los principales beneficios de no usar dos vistas separadas con controles únicos (no el enfoque compartido con las mismas etiquetas) es que usted mantiene el acceso a sus subvistas originales. Cualquier variable de instancia que defina en su controlador de vista que apunte a un texto archivado, etiqueta, etc. continúa haciéndolo independientemente de la vista de plantilla que se use. Esto mantiene el enfoque de modelo, vista y controlador ya que la estructura de datos permanece sin cambios.
uso de este enfoque todavía se puede maximizar el uso del constructor de interfaces, y el diseño de las plantillas para cada vista, sin dejar de tener la flexibilidad necesaria para escribir código interfaz de usuario personalizada si así lo desea. Usar solo el constructor de interfaces puede ser un poco limitante a veces, y escribir un código personalizado basado en la orientación lo encierra en un poco de trabajo tedioso.
Espero que esto ayude a algunos.
enfoque interesante. Intentaremos eso. Gracias – Korbi
¿Qué pasa si usa IBOutlets, que solo se pueden asignar a una sola vista. – Paranaix
@Paranaix Es posible que no entienda completamente su comentario. La pregunta original plantea el requisito de tener diferentes interfaces para el modo horizontal y vertical. Si está buscando un diseño diferente para la misma interfaz, ese es un problema diferente. Tal vez deberías plantearte una pregunta completamente nueva. –