iOS5: cómo manejar la navegación entre vistas sin UINavigationController

Estoy tratando de crear un panel de navegación de barra lateral personalizado en mi aplicación para iPad, algo así como Instapaper para iPad. Con la ayuda de excelentes tutoriales como el por Scott Sherwood, pude crear una barra lateral personalizada y cambiar entre los controladores de vista.

Implementé esto usando un controlador de vista raíz en el que tengo dos vistas: una es la vista de la barra de pestañas, la otra representa el contenido asociado con la pestaña seleccionada, algo como esto...

enter image description here

Cada vez que selecciono la pestaña, solo agrego una subvista a la Root View Controller, como esto...

@implementation RootViewController

//
// some code here
//

#define TABBAR_WIDTH 80.0F
- (void)buttonTapped:(UIButton *)aButton
{
    UIViewController *newVC = [self.storyboard instantiateViewControllerWithIdentifier:@"SomeView"];
    [newVC.view setFrame:CGRectMake(TABBAR_WIDTH, 0, self.view.bounds.size.width - TABBAR_WIDTH, self.view.bounds.size.height)];
    [self addSubView:newVC.view];
}

Ahora lo que quiero hacer es introducir una nueva vista en el Contents no se basa en la selección de pestañas sino en alguna interacción en la vista de contenido. La forma en que descubrí hacer esto es agregar otra subvista a la supervista. En ese caso, sin embargo, tendré que implementar los botones de empujar, hacer estallar, retroceder, animaciones entre vistas por mí mismo.

Me preguntaba si puedo implementar este escenario usando UINavigationController (para que los botones de empujar, hacer estallar y retroceder se manejen automáticamente de forma mágica).

¿Alguien puede arrojar algo de luz sobre este tema? Puede ser incluso una breve descripción general de cómo se podría haber implementado esto en Aplicación Instapaper para iPad ayudaría.

preguntado el 27 de julio de 12 a las 06:07

1 Respuestas

Aquí necesita navegar en la vista de contenedor.

Así que puedes ir con esta cosa:

  1. Tenga un controlador de navegación (alloc-init-set frame-navegation bar hidden, etc.) que tenga su controlador de vista content1 como controlador raíz.
  2. En el controlador de vista Content1, en el evento de toque de botón, simplemente empuje su controlador de navegación al controlador de vista Content2 y haga lo mismo para el evento emergente

Alloc: inicie su controlador de navegación en su controlador raíz donde tiene su pestaña personalizada y vista de contenedor en xib ...

Nota: borre la vista de su contenedor antes de agregar cualquier otra vista.

Ya he hecho este escenario, así que funciona bien para mí.

Espero que esto sea lo que necesitabas...

Disfruta de la codificación :)

Respondido 30 Jul 12, 11:07

Entonces, ¿está diciendo que en lugar de agregar subvistas a la vista de root, presiono los controladores de vista en el controlador de navegación de rootVC? Al presionar el controlador de vista, ¿cómo permanecerá visible la vista de la barra de pestañas personalizada? - vikmalhotra

No, no. Primero agregue su vista de contenido 1 a NavigationController (aloc init en la clase de controlador de vista raíz). Luego agregue ese navController a containerView de root como agregar subvista. Ahora, en contenView1, puede enviar a otro viewController ya que tiene el controlador de navegación. - mrunal

¿Puede votar lo mismo y, si está satisfecho, también hacer el trabajo de recompensa? Gracias de antemano... :) - mrunal

ya votado. :) otorgar recompensas requiere algo de tiempo (alrededor de un día, supongo). - vikmalhotra

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.