Cómo cambiar el controlador de vista dividida en su aplicación para ios a una relación controlador de la vista de detalle

Es posible que desee eliminar el Detallado controlador objeto del guión iPad para nuestra aplicación iOS (pero asegúrese de no borrar los archivos de clase de controlador de DetailView en el Navegador de proyectos). Vas a reemplazar la relación entre el controlador y la vista dividida Vista de detalles controlador con uno al controlador de tiempo.

El controlador de tiempo se eligió arbitrariamente aquí - que podría fácilmente haber reemplazado con cualquiera de los otros controladores de vista. Esta es la vista de detalles que el usuario verá cuando se inicia la aplicación.

Los pasos siguientes muestran cómo reemplazar el controlador Detallado.

  1. En el esquema del documento o en el lienzo, seleccione el controlador de navegación asociada con el controlador Detallado y pulse Eliminar.

    Video: TUTORIAL 2-CONTROLADORES-PARTE 1 DE 3-TODO REASON EN ESPAÑOL

    Puede ser más fácil de seleccionar el controlador Detallado en el esquema del documento con el fin de resaltarlo. Entonces es probable que pueda encontrar el controlador de navegación al lado de ella.

  2. Seleccione el controlador de Vista de detalles en el esquema del documento o lienzo y pulse Eliminar también.

    Video: U8 Watch - Lo que nadie explica

    Tendrá que crear una nueva relación entre el controlador Dividir vista y el controlador de tiempo.

  3. Seleccione el controlador Dividir vista en el guión gráfico o documento de esquema, de control y arrastre para el controlador de tiempo, y luego seleccione la relación - Detallado controlador desde el menú emergente que aparece.

    El resultado final de lo que se ha añadido al guión gráfico hasta ahora debería tener este aspecto. Las cosas se han reorganizado un poco en aras de la claridad. Asegúrese de que todo lo que se denomina como reorganizar los controladores de vista. A continuación, puede acercar y alejar para ver lo que hace el arreglo más lógico.

También vas a tener que hacer algunos cambios en aplicación: didFinishLaunchingWithOptions:. Agregue el código en negrita para que el método de AppDelegate.m.

Video: VideoTutorial 2 del Taller Práctico de Codeigniter Framework. Introducción a controladores y vistas

- (BOOL) aplicación: (UIApplication *) applicationdidFinishLaunchingWithOptions: (NSDictionary *) launchOptions {si ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {UISplitViewController * splitViewController = (UISplitViewController *) self.window.rootViewController-if ([splitViewController.viewControllers [1]  isKindOfClass: [clase UINavigationController]]) {UINavigationController * detailNavigationController = [splitViewController.viewControllerslastObject] -splitViewController.delegate = (id) navigationController.topViewController-}más splitViewController.delegate =  [SplitViewController.viewControllers LastObject] -... el resto del método}

El cambio que haga aquí está en cómo se obtiene el controlador Detallado que va a asignar como Dividir vista delegado controlador. El controlador Dividir vista gestiona dos controladores de vista, con el último en la lista de controladores que corresponden a lo que se muestra en la vista Detalle.

Se comprueba el último controlador de vista para ver si se trata de un controlador de navegación (que contiene el controlador Detallado) enviándole el isKindOfClass: mensaje. Este método devuelve un valor booleano que indica si se trata de una UINavigationController.

si ([splitViewController.viewControllers [1] isKindOfClass: [clase UINavigationController]]) {UINavigationController * detailNavigationController = [splitViewController.viewControllers LastObject] -splitViewController.delegate = (id) detailNavigationController.topViewController-}

Si se trata de un controlador de navegación, es necesario encontrar el controlador de vista (que es el que ha adoptado el SplitViewControllerDelegate protocolo, implementado los métodos de protocolo, y puede convertirse en delegado del Dividir vista controlador), que se obtiene mediante el acceso al controlador de navegación de topViewController propiedad. (Se señala el primer y único controlador de vista de su pila.) Después se le asigna como el delegado.

Si se trata de un controlador de vista, en lugar de un controlador de navegación (que será porque usted acaba de hacer el controlador de tiempo del controlador Detallado, y no tiene control de navegación), que acaba de asignar ese punto de vista controlador como el delegado.

else splitViewController.delegate = [splitViewController.viewControllers LastObject] -

Si crear y ejecutar el proyecto ahora, parece que hemos dado un paso retrospectivas todo lo que ves es una pantalla en blanco - en orientación vertical no menos (a menos que usted ha mantenido el controlador de prueba de manejo como la vista en detalle inicial controlador).

Artículos Relacionados