En este tutorial vamos a ver como realizar la navegación entre vistas, para ello vamos a crear una segunda vista, navegar hacia ella y pasarle información procedente de la primera vista.
Cuando tengamos nuestro proyecto creado, nos dirigimos a nuestro Storyboard y arrastramos un nuevo “View Controller“.Recordad que cada vista tiene que tener una clase que la gestione, por tanto, vayamos a crear la clase.
Pulsamos botón derecho sobre la carpeta de nuestro proyecto y seleccionamos “New File”

Y seleccionamos en el apartado “iOS” dentro de la categoría “Source” la opción “Cocoa Touch Class“.
Pulsamos “Next” y nos pedirá un nombre para ese archivo, nosotros lo llamaremos “ViewController2“. Esta clase deberá heredar de un “UIViewController”
Seleccionamos la vista 2 dentro del Storyboard y en el apartado “Class” escribiremos el nombre de nuestra clase.
Teniendo ya nuestra vista 2 configurada, vamos ahora a crear las interfaces gráficas y a referencias sus componentes. En la vista 1 pediremos que introduzca su nombre y en la vista 2, se mostrará el nombre introducido.

Para poder navegar entre esas dos vistas, nos hace falta un elemento llamada “Navigation Controller“.Dicho esto seleccionamos la vista 1 y seleccionamos Editor->Embed In->Navigation Controller.
Lo que vamos hacer ahora es que al pulsar nuestro botón, nos muestre la vista 2. Seleccionamos nuestro botón Saludar y manteniendo la tecla “Control” pulsada, lo arrastramos a la vista 2. Se nos abrirá un dialogo preguntándonos que tipo de navegación queremos implantar.Nosotros elegiremos “Show“.

Ya solo nos quedaría pasar la información de la vista 1 a la vista 2. Primeramente vamos ha crear una variable String llamada “nombre” en la que guardaremos el texto que se escriba en la vista 1.
var nombre:String = "";
Y ahora pasamos a sobreescribir el método “prepareForSegue” en nuestra clase “ViewController.swift“. Este método se lanza antes de pasar de la vista en la que nos encontramos a otra y es aquí donde vamos ha indicar que guarde en nuestra variable “nombre” de la vista 2 el nombre que hemos introducido en la vista 1.
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { var vista:ViewController2 = segue.destinationViewController as ViewController2 vista.nombre = self.tfNombre.text; }
Ahora indicamos en el método “viewDidLoad” que cuando termine de cargar la vista 2, recoja el valor de la variable “nombre” y lo muestre en nuestra etiqueta.
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. self.lblNombre.text = "Hola " + self.nombre; }
Descargas
Puedes acceder a nuestro repositorio para bajar el proyecto aquí.
Iván Díaz Molina
Latest posts by Iván Díaz Molina (see all)
- Cómo crear listas en iOS - 16 February 2015
- Navegación entre vistas - 11 February 2015
- Mi primera aplicación iOS (Hola Mundo) - 9 February 2015
Hola, ese es el caso de hacerlo por medio de segue, pero si lo quiero hacer con protocolo delegado?
Excelente! Muchas gracias.
Gracias por el comentario.