¿Puedo acceder a ViewController específico?

Estoy usando una aplicación basada en navegación. Presiono First ViewController a Second ViewController y desde Second ViewController a Third ViewController. Ahora quiero pasar de Third ViewController a First ViewController. Estoy realizando esta tarea usando el siguiente código pero mi aplicación se colgó.

Por favor, cualquier cuerpo me da algunas pautas apropiadas. No puedo usar pop para rootViewController porque es diferente viewController. Gracias por adelantado…

En Third ViewControler escribí esto:

FirstViewCtr *x=[[FirstViewCtr alloc] initWithNibName:@"FirstViewCtr" bundle:nil]; [self.navigationController popToViewController:x animated:NO]; 

Al escribir la primera línea obtienes los índices de todos los controladores de vista y desde la segunda línea llegarás hasta tu destino.

 NSArray *array = [self.navigationController viewControllers]; [self.navigationController popToViewController:[array objectAtIndex:2] animated:YES]; 

Un enfoque más seguro:

 - (void)turnBackToAnOldViewController{ for (UIViewController *controller in self.navigationController.viewControllers) { //Do not forget to import AnOldViewController.h if ([controller isKindOfClass:[AnOldViewController class]]) { [self.navigationController popToViewController:controller animated:YES]; return; } } } 

Manera rápida:

  let dashboardVC = navigationController!.viewControllers.filter { $0 is YourViewController }.first! navigationController!.popToViewController(dashboardVC, animated: true) 
 [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES]; 

A menudo es más importante hacer eso desde la parte superior de la stack, entonces:

 - (void)popToLast:(Class)aClass { for (int i=self.navigationController.viewControllers.count-1; i>=0; i--) { UIViewController *vc = self.navigationController.viewControllers[i]; if ([vc isKindOfClass:aClass]) { [self.navigationController popToViewController:vc animated:YES]; break; } } } 

y tú llamas eso

 popToLast:[SomeViewController class];