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.
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.