Descartar y abrir un controller de vista

Quiero volver dos niveles en mi stack de controlleres de vista. Tengo tres segues en este order: Mostrar, Mostrar, Presente Modalmente. Hay un controller de navigation en uso. Desde mi cuarta vista quiero volver a la segunda vista. He intentado usar self.presentingViewController?.presentingViewController?.navigationController?.popViewControllerAnimated(false);

y

self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(false, completion: nil);

El segundo funciona solo si el segundo y tercer segues como 'Presente Modalmente'. ¿Cómo puedo hacer que funcionen con un despido y un pop?

Intente descartar el controller de vista presentado antes de hacer estallar los otros dos:

 func dismissThenDoublePop() { // Get the presenting/previous view let previousView = self.presentingViewController as UINavigationController // Dismiss the current view controller then pop the others // upon completion self.dismissViewControllerAnimated(true, completion: { // Get an array of the current view controllers on your nav stack let viewControllers: [UIViewController] = previousView.viewControllers as [UIViewController]; // Then either pop two view controllers, ie pop // to viewControllers[viewControllers.count - 2], or // pop to the second view controller in the nav stack, // ie viewControllers[1]. (In this case I've used the // first option.) self.navigationController!.popToViewController(viewControllers[viewControllers.count - 2], animated: true); }); } 

Puedes usar esta técnica

https://stackoverflow.com/a/15839298/1153100

Simple y limpio (Unwind segues)

 @IBAction func unwindAction(segue: UIStoryboardSegue) { } 

Simplemente llame a dismissViewControllerAnimated . Desestimará automáticamente todos los controlleres de vista, incluido el model viewcontroller presentado.

C objective

 [self.navigationController dismissViewControllerAnimated:YES completion:nil]; 

Rápido

 self.navigationController?.dismissViewControllerAnimated(false, completion: nil); 

Usted usa como este.

 self.navigationController?.popViewControllerAnimated(true)