Pasar Datos entre ViewControllers usando StoryBoards y Segues (Video)


Aunque quizás esta no sea la forma correcta de intercambiar datos entre ViewController utilizando los StoryBoards, en este vídeo-tutorial se da una solución a este problema. Que si bien parece fácil, en un principio, no resulta muy intuitivo para la gente que comenzamos con la programación para aplicaciones de iPhone e iPad.

El problema a resolver consiste en: pasar 2 variables del tipo NSString de un ViewController a otro utilizando los StoryBoards. El problema se resuelve poniendo un "segue" (hablando mal y rápido, un segue es un "canuto" entre ViewControllers), y asignando en el primer ViewController los atributos del segundo ViewController (en este caso dos atributos de tipo NSString).

Estos datos se pasaran por un determinado "segue" que tendrá un identificador, y esto se hará a traves del siguiente método "prepareForSegue":

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if ([[segue identifier] isEqualToString:@"NOMBRE_DEL_SEGUE"]) {
        NOMBRE_VIEWCONTROLLER_DESTINO *segundoView = [segue destinationViewController];
        segundoView.NOMBRE_ATRIBUTO = VALOR_A_PASAR;

    }
}

A continuación se muestra un vídeo de como se ha realizado esta sencilla aplicación de paso de datos entre View utilizando StoryBoards y Segues:

El proyecto de esta aplicación lo podéis descargar AQUI.

Comparte esta entrada en:
Safe Creative #1401310112503
Pasar Datos entre ViewControllers usando StoryBoards y Segues (Video) por "www.jarroba.com" esta bajo una licencia Creative Commons
Reconocimiento-NoComercial-CompartirIgual 3.0 Unported License.
Creado a partir de la obra en www.jarroba.com

16 thoughts on “Pasar Datos entre ViewControllers usando StoryBoards y Segues (Video)”

  1. una pregunta, existe la posibilidad de enviar datos de un storyboards a otro storyboards??? o tengo que usar un solo storyboards en todo el proyecto

  2. hola bunas, gracias en primer lugar,como podria hacer para añadirle un boton con un «push» a otro view controller?? lo he probado a hacer y me da error, gracias!!

      1. Muchísimas gracias por tu rápida respuesta, probe con modal y me funciono asi que MUCHISIMAS GRACIAS AMIGO, tienes algun tutorial de Social Framework y Twitter???

        me he guardado tu pagina en favoritos asi que aquí andaré mas de un día para ver tus tutoriales y preguntar dudas, GRACIAS!!!!!!!!!!!!!

  3. Gracias! el unico que me sirvio! para entender esos segue!!! Porque la verdad estaba que me colgaba porque no encontraba algo claro.

    De nuevo gracias, y pues es facil cuando se lo explican como lo hizo en el video.

  4. hola muy bueno el tutorial tengo un problema quiero pasar datos entre viewcontrollers sin ls segues, es decir q quiero guardar un dato y cuando abra el otro viewcontroller ya este el dato sin usar base de datos, pq despues de q en el otro viewcontroller esten todos los datos q envie de varios viewcontrollers recien agregare todo a la base de datos, por favor me urge

    1. Hola Achiles.
      Las únicas formas de pasar datos entre vistas son por medio de segues o teniendo los datos en una base de datos (SQL-lite) en la que podrás acceder a los datos desde cualquier vista…
      No he entendido bien tu pregunta pero ya te digo que solo hay dos formas de tener los datos en las vistas, «jugando» con los segues o teniendo la base de datos… Creo (sino te he entendido mal) que tendras que crearte una base de datos para hacer lo que supongo que quieres hacer.
      Cualquier cosa nos cuentas.
      SL2

  5. Hola Jesus, Gracias por el comentario.
    Como anotación decirte que si de una vista puedes pasar a otras 2 o mas vistas y quieres pasarle datos a ellas, debes de poner nobres diferentes a los segues, de ahi que necesites la sentencia «if» para identificar el nombre del segue.
    Cualquier otra duda o sugerencia para hacer otro tutorial nos dices.
    SL2

  6. Me ha servido justo para lo que estaba buscando. Muy bien explicado y muchas gracias por la aportación.
    Como opcional, si como yo hay varios sitios desde la primera view en la que pasas a la segunda view, le quito el nombre del segue y en el prepareForSegue quito el if. Supongo que será cuestión de gustos y necesidades.
    Un saludo.

  7. Muchísimas gracias por este tutorial. Además de la utilidad me habeis aclarado muchos conceptos.
    Gracias otra vez y un saludo.

  8. Hola Redpitiusa.
    Bueno lo primero decirte que nos hemos dado cuenta que el enlace de descarga que tenemos puesto en la web no funciona, asique te dejo en el siguiente enlace el proyecto que se realizo en el tutorial:
    https://dl.dropbox.com/u/3136857/PasarDatosEntreViewControllers.zip

    Como podras observar en el código que te he pasado puedes pasar a traves de los segues todos los datos que quieras ya que al fin y al cabo funciona como un «canuto» de datos entre segues. En el caso del ejemplo se le pasan dos variable de tipo String (bueno NSString) que estan declaradas en la segunda vista pero le puedes pasar lo que quieras, enteros, float, arrays, objetos, arrays de objeto, etc.

    Sino he entendido mal lo que quieres haces es que en la primera pantalla introduzcas el sumando y el sumador y el la segunda pantalla te aparezca la información de la operación con el resultado ??? Si es lo puedes hacer de varias formas, una de ellas podria ser declararte dos variables de tipo entero o float que representen al sumando y al sumador y cuando le des al boton hacer que esas dos variables pasen a la segunda vista. Por ejemplo tienes en una variable sumando valor 3 y en la variable sumador valor 2, pues esas dos variables las pasas a la segunda vista. Una vez que estes en la segunda vista puedes por ejemplo en el metodo «viewdidload» cojer el sumando y el sumador y sumarlo asignandolo a una variable y una vez hecho esto ya tienes en la segunda vista las tres variables que podras mostrarlas o hacer lo que quieras con ellas.

    Nose si te he respondido a la pregunta, sino es asi vuelve a escribirnos explicandonos el problema con mas detalle e intentamos ayudarte…OK

    Gracias por escribir
    SL2

  9. Hola.. Excelente tutorial y muy bien explicado… Tengo una duda que no puedo aclárame ,aver si me podéis echar una mano.. Continuando con el ejemplo de pasar datos entre vistas, si por ejemplo tenemos un calculo , digamos una suma, y estos dos datos están en la vista uno pero el resultado de esta suma quiero que se vea reflejado en la vista dos luego de pulsar un botón que diga siguiente en vista uno… Como hago para reflejar esta operación en la segunda vista? Gracias de antemano

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.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies

ACEPTAR
Aviso de cookies