2012-04-23 8 views

Respuesta

0

[my_segue_view_controller dismissModalViewControllerAnimated: YES]?

(no estoy seguro, pero funciona en mi práctica)

+3

Se debe evitar el uso de 'dismissModalViewControllerAnimated:', como [el docs] (http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html) dicen que es obsoleto. 'dismissViewControllerAnimated: completion:' debe usarse en su lugar. –

0

performSegueWithIdentifier:sender: sí mismo no es despedido, eso es sólo el método que se llama para iniciar una llamada segue. Lo que sucede en el segue es de más interés.

tienes razón en que debe llamar a dismissViewControllerAnimated:completion:, y que debería ser llamado por el presentar controlador de vista, que previamente ha llamado el presentado controlador de vista utilizando presentViewController:animated:completion:. Para obtener más información, consulte the UIViewcontroller docs.

31

¿Tiene una navigationbar en el viewController que está llamando:

[self performSegueWithIdentifier:@"my_segue" sender:self]; 

Si es así, tendrá que utilizar:

[self.navigationController popViewControllerAnimated:YES]; 

pop a la vista de la pila. Hay una llamada Segue, pero el marco parece llamar:

presentViewController:animated:completion: 

o:

pushViewController:animated: 

según corresponda.

Ray

+0

Estaba probando diferentes combinaciones que se centraban en despedir a ViewController ... ninguna funcionó. Feliz encontré, e intenté, su sugerencia de 'popViewController' en su lugar. No estoy seguro de si esto es cierto, pero ciertamente puedo ver una posible relación entre una transición de PUSH y la necesidad de un POP recíproco para sacarlo de la pila. – BonanzaDriver

2

Se podía llamar

[self dismissViewControllerAnimated:YES completion:nil]; 

desde el controlador de vista desde el controlador de vista fue empujado por segue.

Cuestiones relacionadas