example bar iphone objective-c uinavigationcontroller navigation

iphone - bar - ¿Cómo eliminar un controlador de vista específico de la pila uinavigationcontroller?



navigation controller swift 4 example (2)

Aquí está mi solución. Puede establecer la etiqueta o una propiedad fija para sus controladores de vista, luego puede atravesar la pila de uinavigationcontroller para buscar el controlador de vista objetivo (vcToRemove) y eliminarlo. Esto podría ser más seguro. El código:

NSInteger tag = vcToRemove.wvTag; NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray: vcToRemove.navigationController.viewControllers]; int i = 1; for (i = 1; i <=[allViewControllers count]; i++) { UIViewController *vc = [allViewControllers objectAtIndex:i]; if ([vc isKindOfClass:[MyWebViewController class]]) { if (((MyWebViewController *)vc).wvTag == tag) { [allViewControllers removeObjectAtIndex:i]; break; } } } vcToRemove.navigationController.viewControllers = allViewControllers;

Tengo un controlador de uinavigation. Después de iniciar sesión, quiero eliminar viewcontrollers como RegisterViewController, LoginViewController, etc. de la pila UInavigationcontroller ..

Quiero decir que tengo que eliminar un controlador de vista particular de la pila? Como es posible. ?

Revisé esta publicación

http://starterstep.wordpress.com/2009/03/05/changing-a-uinavigationcontroller’s-root-view-controller/

Así que podemos tomarlo en una matriz como

NSArray *allviewcontrollers= [(UINavigationController *)navigationController viewControllers];

Pero cómo hacer un proceso adicional ... Esta pregunta me está persiguiendo durante mucho tiempo ... Por favor, responda ... Gracias de antemano


NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray: navigationController.viewControllers]; [allViewControllers removeObjectIdenticalTo: removedViewController]; navigationController.viewControllers = allViewControllers;