La adopción de un menu lateral en la aplicación iOS. Ver problema de estructura de controlleres

Estoy diseñando una aplicación destinada a tener la siguiente estructura de navigation: Necesito tener una vista de bienvenida con los botones "Registrarse" y "Iniciar session", ya que la mayoría de las aplicaciones tienen:

iPhone_Bienvenido

Esta vista no muestra ninguna barra de navigation, ya que parece ser lo común. Si se selecciona "Iniciar session", la vista de inicio de session se presentará de manera modal:

iPhone_signIn

Y si se selecciona "Registrarse", la vista de bienvenida se desplaza a un formulario que solicita la input del usuario para crear una count:

iPhone_signUp

Luego, una vez que el usuario inicia session e ingresa a la aplicación, quisiera que tenga menus similares a Facebook, YouTube o Spotify:

iPhone_facebook

Siendo el panel central un UINavigationController . Panel del lado izquierdo Creo que generalmente es un 'UIViewController' …

El punto es que no sé qué debería ser el rootViewController de mi aplicación, y qué jerarquía de controlleres de vista debería tener. He pensado en un par de posibilidades:

1) Siendo el rootViewController un UINavigationController , presione la vista de bienvenida ocultando la barra de navigation (¿es posible?), Presentando la vista "Iniciar session" si es necesario o presionando la vista "Registrarse". Una vez que el usuario haya iniciado session, rootViewController estas vistas desde rootViewController , que es un UINavigationController , y luego presione en dicho controller de navigation el controller de vista personalizado que gestiona las cosas del menu lateral.

2) Siendo el rootViewController el controller de vista personalizada del menu lateral y configurando como panel central un UINavigationController . Presione allí la vista de bienvenida y así sucesivamente, sin configurar ningún controller de vista para los paneles izquierdo / derecho, y luego cuando el usuario haya iniciado session, UINavigationController esas vistas desde el UINavigationController del panel central, presionar allí la vista correspondiente y ahora configurar el control izquierdo / paneles derechos

Espero haberme explicado. Tal vez hay otro y mejor enfoque para manejar este escenario. ¿Alguien implementó una aplicación como esta? Necesito ayuda con este problema, y ​​también agradeceré que se me recomiende una biblioteca personalizada / control que brinde el menu lateral de alguien que haya usado uno y que sea fácil de usar y personalizar. Sé que hay muchos de ellos ( MMDrawerController , JASidePanels , por ejemplo), pero me gustaría tener algunas opiniones de personas que habían desarrollado una aplicación con una de ellas.

Nota: También necesito soporte para iPad e iOS 5+

Muchas gracias

Recomendaría que tenga dos ViewControllers principales, uno para inicio de session / logging y el segundo para el contenido principal con menu lateral. Después de que el usuario inicie session, simplemente cambie la window rootViewController a la segunda.

Para el menu lateral puede usar:

  • JTRevealSidebar para iOS
  • GSSlideMenu
  • JASidePanels
  • MMDrawerController

He diseñado una aplicación usando ECSlidingViewController (creado por Michael Enriquez) que funciona muy bien para mí y fácil de usar.

Tutorial también disponible en youtube: http://www.youtube.com/watch?v=tJJMyzdB9uI

En cuanto a Swift, puedes usar la biblioteca InteractiveSideMenu como Menú lateral. Es bastante fácil de implementar y la animation de transición se ve bastante suave. Fue un buen hallazgo para mi proyecto.