7

Soy la creación de una nueva pila de ViewControllers a mi navigationController de la siguiente manera:estilo de transición cuando se utiliza setViewControllers: animada: en UINavigationController

MainMenuViewController *mainMenuViewController = [[MainMenuViewController alloc] init]; 
NSArray *controllerArray = [NSArray arrayWithObject:mainMenuViewController]; 
[mainMenuViewController release]; 
[self.navController setViewControllers:controllerArray animated:YES]; 

El único problema es que parece que no puede establecer la transición estilo. Idealmente me gustaría voltear. es posible? Es importante que use setViewControllers: animado en lugar de presentModalViewController, ya que cambio de una pila a otra y quiero mantener el comportamiento de control de navegación para cada una.

Respuesta

0

En lugar de intercambiar pilas de navegación completas, ¿por qué no mantener dos controles de navegación y animar una transición entre ellos? Me parece más limpio.

ACTUALIZACIÓN

supongo que podría ser de mejor asistencia si sabía lo que estaba tratando de lograr, pero sé que se puede presentar una segunda forma modal controlador de navegación desde un principio, y se puede empujar un montón de vistas antes o después de la presentación, etc. Además, el reemplazo total de una pila existente de controladores de vista, especialmente si es profunda, puede confundir al usuario, sin mencionar al equipo de revisión de Apple.

Mantener dos controladores de nav en la memoria no es necesariamente un gran problema, siempre y cuando tenga la memoria (probablemente lo haga), y mientras el usuario obtenga realmente el beneficio.

Quizás pueda arrojar algo de luz sobre su propósito de alto nivel y podemos ir desde allí.

MÁS

Si usted quiere que dar la vuelta, entonces se puede establecer navController2.modalTranstitionStyle = UIModalTransitionStyleFlipHorizontal, lo que hará que navController2 para voltear en cuando se presenta de forma modal.

SO tenía algún error extraño sobre el momento en que estábamos comentando a continuación, podría haber perdido sus actualizaciones.

+0

Bueno, yo estaba haciendo algo similar aquí: http://stackoverflow.com/questions/9570225/how-to-swap-between-2-root-view-controllers que no parecía animarse. A pesar de que tenía un controlador de navegación para el que reinicié a un nuevo RootViewController cada vez. ¿Es una buena práctica tener 2 NavControllers entonces? ¿No terminas con los dos en la memoria al mismo tiempo? – Smikey

+0

Agregó una actualización – QED

+0

Usted podría hacer eso - No creo que tener un controlador de navegación vacío o 'corto' en la mano será tan importante. También podría intentar crear el segundo controlador de navegación bajo demanda, justo antes de presentarlo. Esto podría ocasionar un pequeño retraso en la IU, o no. Tendrás que probar para ver qué funciona bien. – QED

Cuestiones relacionadas