2010-11-24 18 views
6

Quiero crear mi propio controlador de vista de contenedores, es decir, algo así como UINavigationController o UITabBarController. Los doctores dicen que no debería hacer eso, pero ¿por qué no? Los contenedores de navegación y tabbar son buenos ejemplos de que tal cosa es posible y funciona muy bien. También entiendo que el iPhone tiene una pantalla pequeña y que la gente no debería estropearlo con los botones de navegación, etc., pero en un iPad hay mucho espacio y dividirlo en muchos controladores de vista nos daría grandes oportunidades.personalizada controlador de vista de contenedores

tengo una sensación de Apple no agregó dicha API todavía, pero lo harán. Hace algunos días, agregaron documentos sobre controladores específicos del iPad (sí, contenedores) y modificaron los textos a algo menos peligroso.

En fin ... ¿qué problemas puedo tener si trato de utilizar dos o más controladores de vista en una pantalla? Sé que solo uno de ellos obtendrá eventos como cambio de orientación o advertencia de poca memoria, así que tengo que pasar estos eventos a VCs. Me temo acerca de la compatibilidad con versiones futuras de iOS, porque si agregan nuevos eventos, entonces los VCs contenidos no ejecutarán las acciones predeterminadas heredadas de UIViewController. ¿Algo más? ¿Crees que mi aplicación puede ser rechazada por Apple? ¿Tal vez hay otra forma de tener algunos elementos de vista persistentes en cada pantalla sin copiar mucho del mismo código en cada VC?

Gracias de antemano.

Respuesta

2

Subclasificar UINavigationController o UITabBarController es una excelente manera de manejar problemas de rotación de dispositivos, pero no recomendaría hacerlo específicamente para compartir subvistas de múltiples controladores de vista.

Tal vez la subclasificación UIViewController es lo que estás buscando. Luego, cuando la vista se haya cargado, puede cargar sus vistas compartidas desde una punta y definir las salidas en su subclase UIViewController, además de agregar cualquier código de soporte a su subclase para manejar los eventos. Lo hice yo mismo para agregar un mensaje de actualización de estado que quiero que aparezca en cualquiera de las vistas de mis controladores de vista.

+0

Estoy de acuerdo, Apple no dice que no deba crear controladores de contenedor personalizados, solo que UINavigationController y UITabBarController no están realmente diseñados para ser subclasificados y los resultados pueden ser extraños si lo intenta. –

+0

Es, básicamente, tiene que subclase para obtener los autorrotación trabajando en una aplicación que los utiliza, y los documentos no advierten contra la subclasificación cualquiera de ellos, pero no creo que él necesita para lo que él está tratando de hacer. – spstanley

+0

Sí, es posible tener dos VCs. Probé y dividí con éxito la pantalla en dos partes: los botones de cada parte fueron manejados por diferentes VCs. Todo funcionaba bien, incluidas las animaciones, etc. Solo tengo miedo de los efectos secundarios. Apple debe tener una razón, por qué no permiten usar varios VCs en una pantalla. Los eventos pueden ser problemáticos, pero creo que podría manejarlos. Me pregunto si puede haber otros problemas. – broot

Cuestiones relacionadas