2012-04-18 14 views
6

Tengo tres viewControllerIOS: el despido de dos viewController

Primera, Segunda y Tercera

del segundo al tercer abrir Puedo utilizar

Third *third = [[Third alloc]initWithNibName:@"Third" bundle:nil]; 
[self presentModalViewController:third animated:YES]; 
[third release]; 

Ahora quiero volver del tercer al primer; entonces me puse en viewDidAppear en la segunda este código:

[self dismissModalViewControllerAnimated:NO]; 

pero durante 1 segundo veo Segunda y no quiero verlo ... ¿cómo se puede hacer?

+1

cómo se ha agregado la segunda vista a la primera vista? –

Respuesta

15

Debe cerrar 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]; 
} 
4

¿Cómo se descarta la tercera vista modal en primer lugar? ¿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 despedir a la vez como:

[self dismissModalViewControllerAnimated: YES]; 
[self.presentingViewController dismissModalViewControllerAnimated: NO]; 
+0

Creo que los parámetros ** animados ** deberían ser NO y luego SÍ, ver la respuesta de rakeshNS – onmyway133

0

Esto sucede coz viewDidAppear se llama cada vez que aparece ante la vista de lo que tan pronto como aparece de descartarlo y desaparece ..

no lo hago piense que lo que está tratando de hacer se puede lograr con modalViewControllers ... en su lugar use un navigationController y continúe agregando sus controladores de vista en la pila y cuando quiera ir al controlador de la primera vista simplemente llame al

EDIT:

acaba de ocurrir que esto se puede lograr mediante el uso de la delegación .. que hacen el delegado de segunda tercera y tan pronto desecha la thirdviecontroller enviar un delegado message.In este mensaje de llamada [self dismissModalViewControllerAnimated:NO];. y listo ... (bastante fácil si conoce delegación.)

Cuestiones relacionadas