Pasar de un ViewController a otro automaticamente (iPhone)


En este tutorial se va a mostrar de que forma se puede pasar de un ViewController a otro sin la necesidad de que el usuario intervenga, es decir sin la necesidad de que el usuario pulse o no algún elemento de la interfaz gráfica.

Esto es muy útil para aquellas aplicaciones que necesitan descargar datos del servidor antes de inicializarse o cualquier otra acción.

Lo primero que hay que hacer es crearse un nuevo proyecto. Al crearse el proyecto se tendrá un ViewController con sus ficheros “.h” y “.m” asociados a el. A este ViewCotroller le hemos puesto el label de “1º Pantalla”.

Lo siguiente que hay que hacer es añadir al StoryBoard un nuevo ViewController. A ese nuevo ViewController, al que ponemos un label con el texto “2º Pantalla” tenemos que identificarlo con un “Storyboard ID”. En este caso el ID lo hemos llamado “Menu”. Todo lo que se ha contado hasta ahora se muestra en la siguiente pantalla.

Lo siguiente que hay que hacer es crearse un timer para que pasado un tiempo se cambie de ViewController. En el ejemplo que hemos realizado se cambia de View pasados dos segundos.  Esto lo hacemos definiendo un timer en el fichero ".h" y haciendo un método en el fichero ".m" que utilice ese timer y que ejecute un método pasado el tiempo definido. Esto lo hacemos de la siguiente manera:

Fichero ".h"

#import <UIKit/UIKit.h>

@interface changeViewController : UIViewController{
    NSTimer *timer;
}

@end

Fichero ".m"

- (void) empezar{

    timer = [NSTimer scheduledTimerWithTimeInterval:2.0         // El timer se ejcuta cada segundo
                                             target:self        // Se ejecuta este timer en este view
                                           selector:@selector(pasarPantalla)      // Se ejecuta el método contar
                                           userInfo:nil
                                            repeats:NO];           
}

Como se observa en este método empezar, pasados 2 segundos se ejecuta el método "pasarPantalla". Este método "pasarPantalla" es el encargado de pasar de un ViewController a otro, indicandole al ViewController al que se quiere ir identificado por su “Storyboard ID” que como dijimos anteriormente lo identificamos con la palabra "Menu". A continuación mostramos el método "pasarPantalla":

-(void) pasarPantalla{
    UIStoryboard *storyboard = [UIApplication sharedApplication].delegate.window.rootViewController.storyboard;
    UIViewController *cambiarViewController = [storyboard instantiateViewControllerWithIdentifier:@"Menu"];
    [self presentModalViewController:cambiarViewController animated:YES];

}

Una vez creado este método, llamamos desde el método "viewDidLoad" al método "empezar" que tras dos segundos ejecuta el método "pasarPantalla" y se cambia al segundo ViewController.

 El proyecto de este ejemplo lo podeis descargar del siguiente enlace. PULSAR AQUI.

 

Comparte esta entrada en:
Safe Creative #1401310112503
Pasar de un ViewController a otro automaticamente (iPhone) 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

One thought on “Pasar de un ViewController a otro automaticamente (iPhone)”

  1. Hola Ricardo, 

    Muchas gracias por el código, esta buscando este proceso, pero tengo el problema que no funciona y la descarga pertenece a otro proceso de mostrar una URL desde un ViewController a otro pero no un temporizador de 2 segundos, por favor si me puedes enviarlo a comusol@hotmail.com o subierlo de nuevo te lo agradezco.

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