2010-11-14 15 views
5

Así como el título lo describe, mi pregunta es: ¿Cómo cambio programáticamente el controlador de vista en iOS?Conmutación programática de los controladores de vista MVC - iOS

Por ejemplo, tengo una configuración MVC de menú, ahora hago clic en "Ayuda" ¿Cómo distribuyo esto programáticamente al controlador de vista de ayuda para cargar esa configuración de MVC?

gracias!

Respuesta

5

¿Se trata de una aplicación basada en la visualización o en la navegación?

Para una aplicación basada en la navegación, su AppDelegate deberían proporcionar acceso a una UINavigationController compartida que se puede utilizar para empujar/UIViewControllers pop

[self.navController pushViewController:helpViewController animated:YES] 

a continuación, cuando el usuario quiere dejar la vista de Ayuda y volver a la pantalla principal, lo abrirá. Esta funcionalidad es proporcionada automáticamente por el botón izquierdo/atrás en el UINavigationBar, pero se puede accionar manualmente mediante el selector popViewcontrollerAnimated:

[self.navController popViewControllerAnimated:YES] 

Para aplicaciones basadas en vistas, se mueve entre las pantallas mediante la manipulación de los subvistas

[window addSubview:helpViewController.view] 
+2

Si bien los comentarios basados ​​en navegación valen la pena, te abres a un wo rld de problemas utilizando el enfoque: '[window addSubview: helpViewController.view]'. No lo haré todo: todo está cubierto [aquí] (http://blog.carbonfive.com/2011/03/09/abusing-uiviewcontrollers/). – GarlicFries

1

El uso de la plantilla de utilidad debería ser la solución más rápida. Tendrás dos vistas que pueden cambiar de un lado a otro mágicamente.

Sin embargo, aquellos pueden ser implementadas por los siguientes pasos

el botón de ayuda tocado, sólo llame

[self presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated]; 

no debería estar de vuelta botón en el HelpViewController

[self dismissModalViewControllerAnimated:(BOOL)animated]; //call to return back to parent view controller 

tienen una diversión ^^

+0

¿Qué sucede si desea navegar entre más de dos vistas? Tengo una aplicación que tiene muchas vistas pero no es lineal, por lo que no creo que una aplicación nav-view sea apropiada. ¿alguna sugerencia? – gonzobrains

+0

La aplicación de barra de pestañas es la forma más adecuada de hacer lo que quiera (con el mínimo esfuerzo). –

Cuestiones relacionadas