the - IOS: descartar dos viewController
dismiss view controller swift 4 (3)
Debe descartar primero el controlador de tercera vista y luego el segundo Viewcontroller. Haga el siguiente código cuando quiera ver primero el controlador.
-(void)goToFirstView{
UIViewController *vc = [self parentViewController];
// UIViewController *vc = [self presentingViewController]; //ios 5 or later
[self dismissModalViewControllerAnimated:NO];
[vc dismissModalViewControllerAnimated:YES];
}
Tengo tres viewController
Primero, segundo y tercer
de segundo para abrir tercero uso
Third *third = [[Third alloc]initWithNibName:@"Third" bundle:nil];
[self presentModalViewController:third animated:YES];
[third release];
Ahora quiero regresar del tercero al primero; luego configuré en viewDidAppear en el segundo este código:
[self dismissModalViewControllerAnimated:NO];
pero durante 1 segundo veo Second y no quiero verlo ... ¿cómo puedo hacer?
En primer lugar, ¿cómo se descarta la Tercera opinión modal? ¿Quizás el usuario toque un botón "Hecho"? Si es así, está en el controlador para el botón que desea descartar ambos.
Puede descartar ambos como:
[self dismissModalViewControllerAnimated: YES];
[self.presentingViewController dismissModalViewControllerAnimated: NO];
Esto sucede porque se llama a viewDidAppear cada vez antes de que aparezca la vista, por lo que tan pronto como aparece lo descarta y desaparece.
No creo que lo que estás intentando hacer se pueda lograr con modalViewControllers ... en su lugar usa un navigationController y sigue agregando tus viewcontrollers a la pila y cuando quieras ir al controlador de la primera vista simplemente llama
[self.navigationController popToRootViewControllerAnimated:YES];
EDIT
:
Sólo pensé en esto, esto se puede lograr mediante el uso de la delegación ... usted hace segundo al delegado de tercero y tan pronto como descarta el tercer controlador, envíe un mensaje al delegado. En este mensaje, llame [self dismissModalViewControllerAnimated:NO];
.. y terminaste ... (bastante fácil si conoces la delegación).