En este tutorial vamos a ver como realizar la navegación entre vistas, para este ejemplo 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() 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 febrero 2015
- Navegación entre vistas - 11 febrero 2015
- Mi primera aplicación iOS (Hola Mundo) - 9 febrero 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.