4 cosas que querrás saber después de hacer un Hola Mundo con Swift

Hola-Mundo-con-Swift

Sé lo que vas a querer saber después de hacer tu primer Hola Mundo con Swift

Son cosas que todo el mundo que empieza en este mundo quiere saber.

Más allá de saber con exactitud lo que es una variable o constante, un método o función, lo que los recién iniciados en el desarrollo iOS quieren saber son cosas prácticas.

Tú no vas a ser una excepción, y después de crear tu Hola Mundo con Swift vas a querer saber hacer esto:

  • Cómo hacer un cambio de vista con código
  • Cómo hacer un cambio de vista y pasar un dato de una vista a otra
  • Cómo llamar a una función de la vista B desde la vista A
  • Cómo llamar a una función de la vista B desde la vista A pasándole un parámetro

Bien, estas cuatro cosas las vamos a tratar en detalle en esta entrada.

Doy por hecho que ya has realizado tu primer Hola Mundo con Swift, y que tienes conceptos (aunque sean muy básicos) del lenguaje de programación Swift, si por alguna razón no tienes conocimientos y has llegado a esta entrada de casualidad, te aconsejo realizar algunos de mis Cursos Gratuitos para crear Apps con Swift.

¿Cómo lo sé?

Es cierto, he dicho lo que todo el mundo quiere saber después de hacer su primer Hola Mundo con Swift, pero no he dicho porqué lo sé.

No soy adivino, pero estas son las consultas más repetidas que me llegan por email, todo el que empieza desea más que nada, aprender a hacer estas cuatro cosas.

Cómo hacer un cambio de vista con código

Ya sabéis, un cambio de vista simple desde la llegada de los Storyboards es un juego de niños, literalmente.

Basta con añadir un botón al controlador de vista y crear una conexión hacía el otro controlador de vista, ¡chupao!

Pero… ¿cómo hago para hacer este cambio de vista con código?

Es decir, cómo hago para que este cambio de vista se haga de forma automática, sin necesidad de que el usuario pulse un botón.

Sobra decir que para que este cambio de vista se produzca ¡¡debemos tener 2 vistas!! es decir que en nuestro storyboard debemos tener dos ViewController.

Para pasar de una vista a otra mediante programación, tan solo debemos implementar las siguientes lineas de código en cualquier método o función:

let storyBoard : UIStoryboard = UIStoryboard(name: «Main», bundle:nil)

let miVistaDos = storyBoard.instantiateViewControllerWithIdentifier(«vistaDos») as ViewControllerDos

self.presentViewController(miVistaDos, animated:true, completion:nil)

En la primera linea de código declaramos una constante para almacenar nuestro Storyboard.

Por defecto, el Storyboard que genera la plantilla Single View Application se llama Main y tiene la extensión storyboard.

La segunda linea crea una constante dónde se le va a pasar la constante anteriormente declarada, y mediante el método instantiateViewControllerWithIdentifier vamos a instanciar un controlador de vista con un identificador dado, en este caso vistaDos, este identificador debemos ponerlo en nuestro controlador de vista, en el inspector de identidad, para ello seleccionad vuestra segunda vista en el Storyboard, y poned este identificador en el apartado Storyboard ID, fijaos en esta imagen:

 

Hola-Mundo-con-Swift-1

 

 

La tercera linea de código lo único que hace es presentar la vista.

Cómo hacer un cambio de vista y pasar un dato de una vista a otra

Para pasar un dato desde una vista a otra usaremos un método «especial».

Se trata de un método que va a identificar la secuencia del storyboard, y en base a este identificador, va a pasar el dato o los datos que queramos a nuestra segunda vista.

Lo primero que debemos hacer es añadir un botón a la vista uno y crear una conexión con un cambio de vista hacía la vista dos.

El método que debemos declarar e implementar en la vista uno es el siguiente:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {

    if segue.identifier == «transicion»{

         let vistaDosConDato = segue.destinationViewController as ViewControllerDos

         vistaDosConDato.textoEtiqueta = textField.text

         }

  }

El método simplemente compara mediante un condicional el nombre de la secuencia o transición, de forma que si tiene el mismo valor, presenta la vista y a su vez pasa el dato o los datos a la misma.

Debemos recordar que en el Storyboard, tenemos escenas y secuencias, las escenas son las diferentes vistas y sus controladores, y las secuencias son esas flechas que aparecen y que unen las diferentes vistas y controladores.

Igual que en el ejemplo anterior, debemos poner un identificador en el Storyboard, en este caso un identificador a la secuencia o transición.

Hola-Mundo-con-Swift-2

 

La última linea de la implementación lo único que hace es pasar el dato de un textField de la vista uno a una variable de tipo String de la vista dos.

Cómo llamar a una función o método de la vista B desde la vista A

Bien, esta es quizá la cosa más fácil que podemos aprender a hacer.

Supongamos que en la vista B o vista 2 tenemos la siguiente función:

func funcionQueEscribeUnTexto () {

println («Hola que tal»)

 }

Para llamar a este método o función de la vista dos desde la vista uno, debemos escribir el siguiente código:

@IBAction func llamarMetodoOtraClase(sender: AnyObject) {

  let miVistaDos = ViewControllerDos ()

  miVistaDos.funcionQueEscribeUnTexto()

}

Este método se llama desde un botón como podéis observar por el uso de @IBAction.

La implementación es muy sencilla, declaramos una constante para instanciar la vista dos.

Después mediante la instancia de la vista dos, llamamos al método o función en cuestión.

¿Fácil verdad?

Cómo llamar a una función de la vista B desde la vista A pasándole un parámetro

Igual que antes, lo primero que debemos hacer es instanciar la clase de la vista dos, y después llamar al método.

Si el método que estamos llamando requiere parámetros, debemos pasarle estos parámetros en la implementación del método de la vista uno.

Si en la vista B o vista dos tenemos una función o método que requiere un parámetro y quisiéramos llamarlo desde la vista uno, es decir tenemos algo similar a esto:

func funcionQueEscribeUnTextoYRecibeUnParametro (miString: String){

  println (miString)

 }

Para llamar a esta función desde la vista uno, podemos usar un código como este:

@IBAction func llamarMetodoOtraClaseConParametros(sender: AnyObject) {

    let miVistaDos = ViewControllerDos ()

    miVistaDos.funcionQueEscribeUnTextoYRecibeUnParametro(«Hola soy el parámetro»)

 }

Resumiendo

Como puedes ver, son cuatro cosas sencillas de implementar, pero que generan las grandes dudas cuándo uno comienza en el desarrollo iOS.

Te dejo el código dentro de un proyecto de Xcode, de forma que junto con la lectura de esta entrada puedas tener el ejemplo práctico.

DESCARGAR CÓDIGO DE EJEMPLO

Cualquier duda, déjame un comentario.

About The Author
iOS Developer & Instructor at CFE Apps. Enseño a crear aplicaciones iOS a todo el que quiera aprender.

2 Comments

  • Sofia Rodriguez 03/12/2015 @ 01:03

    let mivistaDos = storyBoard.instantiateViewControllerWithIdentifier(«vistaDos») as ViewControllerDos porque cuando pongo esa linea de código me sale un error que pone: use unresolved identifier»storyBoard»

    • Sergio Becerril 26/12/2015 @ 14:33

      Hola Sofía,
      Puede ser porque no hayas instanciado tu Storyboard con ese nombre.

      Un saludo.
      Sergio Becerril

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.