Aprende a cómo navegar entre diferentes ViewController usando la navegación modal de iOS con el Framework UIKit. Básicamente presentar de forma modal es presentar un ViewController por encima de otro ViewController. El propio ViewController es el encargado de presentar otro ViewController.
Hoy en SwiftBeta vamos a ver a cómo navegar entre distintas pantallas de nuestra app. Vamos a ver los modales, que no es más que presentar un ViewController por encima de otro, mostrando al user una nueva vista de nuestra app. Este tipo de presentación es muy utilizada en iOS, desde apps nativas del propio iOS hasta apps creadas por developers.
Creamos el proyecto en Xcode
Lo primero de todo que vamos hacer es crear el proyecto en Xcode. Acuérdate que estamos usando UIKit, es por eso que debes seleccionar Storyboard en Interface.
Una vez hemos creado el proyecto nos vamos al ViewController. Allí lo vamos a renombrar, vamos a llamarlo ViewControllerA, de esta manera será más fácil entender el post de hoy. Una vez renombrado nos tenemos que ir a nuestro Storyboard y cambiar la clase y módulo de nuestro ViewController.
Volvemos a nuestro ViewControllerA, y vamos a añadir un UIButton y lo centramos en la vista de ViewController
Cuando el user pulse el UIButton, se llamará al método startNavigation, y este método hará que se presente nuestro ViewControllerB. Y es justo lo que vamos hacer antes de crear la función startNavigation, vamos a crear nuestro ViewControllerB. Va a ser muy sencillo, creamos el siguiente fichero con este código:
Ahora volvemos a nuestro ViewControllerA y creamos el método que hará que se presente el ViewControllerB:
Si compilamos, y probamos nuestra app vemos que al apretar el UIButton nos aparece el ViewControllerB 👏
Y te preguntarás, una vez presentado cómo podemos dismissear ViewControllerB? tan solo necesitamos hacer swiper hacía abajo y ViewControllerB desaparecerá. Pero, podemos añadir un UIButton dejando explicitamente que al apretar ese UIButton el ViewControllerB desaparecerá.
Cuando se pulsa el único UIButton de nuestro ViewControllerB, se llama al método del ViewController dismiss. De esta manera al apretar el UIButton nuestro ViewControllerB se dismissea y desaparece de la jerarquía de vistas.
Podríamos llamar al métodos dismiss con completionBlock para realizar alguna acción cuando el ViewControllerB desaparece.
¡Vamos a continuar!
Para finalizar el post de hoy vamos a crear un ViewControllerC
Ahora, desde el ViewControllerB, vamos a crear un UIButton para poder presentar UIViewControllerC, aparte de crearlo lo añadimos a la vista con sus constraints y su método para presentar ViewControllerC:
Ahora si compilamos podemos ir navegando entre estas 3 vistas.
Conclusión
Hoy hemos aprendido a cómo presentar un UIViewController de forma modal. En el siguiente video aprenderemos a cómo pushear ViewController dentro de un UINavigationController.
UIKit es el framework de UI que usamos para crear las pantallas de nuestras app. Con la llegada de SwiftUI, poco a poco hay más apps que están migrando a esta tecnologia, pero aún así saber UIKit es indispensable en una empresa que aún trabaje con UIKit
Aprende a usar childViewControllers en tu app iOS. A medida que creamos una app podemos extraer responsabilidades en ViewControllers. De esta manera simplificamos mucho nuestro código y lo podemos reutilizar en múltiples partes de nuestra app.