2012-06-14 30 views
17

Estoy creando una aplicación usando iOS 5 SDK. Pude enviar vistas usando los Segmentos del Guión Gráfico, pero no puedo encontrar la forma correcta de mostrar la vista actual y volver a la anterior.Muestra la vista actual usando Segues/Storyboard en iOS 5

No estoy usando ningún navigationController (la aplicación no tiene ninguna barra superior o inferior).

No creo que el uso de modal o push segue sea la solución, ya que crea una instancia de un nuevo controlador.

¿Tengo que usar un Segue personalizado con la animación opuesta y la eliminación de la vista al final? O hay un mejor camino ?

Respuesta

24

Puede intentar llamar al [self dismissViewControllerAnimated:YES completion:nil]; desde el controlador que desea descartar (si el controlador se ha pulsado, o se ha mostrado de forma modal).

Aquí está la documentación relacionada: controlador de vista UIViewController Class Reference

La presentación se encarga de despedir el controlador de vista que presentaba. Si llama a este método en el controlador de vista presentado, automáticamente reenvía el mensaje al controlador de vista que se presenta.

+0

Exactamente lo que necesitaba, gracias. – Jukurrpa

+16

Nota: esto no funciona con los controladores de navegación (para abrir). –

+0

Genial;). Me has alegrado el día :). Gracias – androniennn

53

Los guiones gráficos en iOS 5 no brindan un modo "sin código" para regresar de una transición, eso es algo que tendrá que implementar usted mismo.

Si utiliza los segmentos "push" (que requieren un controlador de navegación), utilice el método popViewControllerAnimated: del controlador de navegación para deshacer el último segmento de inserción. (U otros métodos para deshacer más; consulte la documentación UINavigationController.)

Si utiliza "modal" segues, llame dismissViewControllerAnimated:completion: en el controlador de vista que presenta el controlador de vista actual (que se puede obtener de su propiedad presentingViewController).


Actualización: En iOS 6 y versiones posteriores no segues de desenrollado para "volver" en un guión gráfico. Todavía no es una solución sin código, y no debería ser así, porque necesita poder hacer cosas como diferenciar entre las salidas "Hecho" y "Cancelar" de un controlador de vista modal. Pero te permite poner más del flujo semántico de tu aplicación en el guión gráfico. Apple tiene un tech note that describes them in detail, y también están cubiertos en the video from WWDC 2012 Session 407.

16

Solo para aclarar.

En la clase que se presionó. Simplemente conecte lo siguiente y el controlador y la vista se apagarán.

[self.navigationController popViewControllerAnimated:YES]; 
3

Crea Segue type "Custom" en tu stroyboard. Esto puede ser desde un botón. Cree una nueva clase UIStoryboardSegue llamada "popSegue" En el archivo popSegue.m agregue lo siguiente;

-(void)perform{ 
    UIViewController *sourceViewContreoller = [self sourceViewController]; 
    [sourceViewContreoller.navigationController popViewControllerAnimated:YES]; 
} 

-En el editor de guiones gráficos.

: seleccione el segue y cambiar la clase de Segue "popSegue"

-Set el identificador de "popSegue"

Hecho!

Puede usar la misma clase "popSegue" en todo su proyecto.

Esperanza esto ayuda

2

estoy usando Xcode 5 también y aquí es cómo se hace. En primer lugar, en el archivo de código de la vista que llevó a la otra, crear un método IBAction en el archivo .h como este:

- (IBAction)exitToHere:(UIStoryboardPopoverSegue *)segue sender:(id)sender; 

Then in the .m file add this: 

- (IBAction)exitToHere:(UIStoryboardPopoverSegue *)segue sender:(id)sender { 

} 

Usted puede añadir cualquier código de limpieza que desea ejecutar en este método. Luego ve a tu guión gráfico y selecciona la vista presionada. Supongo que tiene algún tipo de botón en la vista que el usuario toca para indicar que ha terminado. Haga clic en ese botón, mantenga presionada la tecla y arrastre hacia el cuadro verde debajo de la vista que es la salida. Suelte el botón del mouse pero continúe presionando la tecla. Aparecerá una ventana emergente y su método se mostrará en la lista. Seleccione ese método. Ahora cuando el usuario hace clic en el botón, la vista se abrirá y volverá al método de inicio.

Cuestiones relacionadas