Search code examples
iosobjective-cuiviewcontrolleruistoryboardseguesplash-screen

Changing ViewController when the Splash has finished


I would like to change the viewController when the Splash has finished with time; I have this:

//Implementación de los métodos:
- (void) cargaImagenes{
    //Asginación de ficheros de imagen a las variables
    splash1 =[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Ejemplo1.jpg"]];
    splash2 =[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Ejemplo2.jpg"]];

    //Ocultamos las imágenes
    splash1.alpha = 0.0;
    splash2.alpha = 0.0;
    //Las ponemos como subvistas a la vista principal del ViewController
    [self.view addSubview:splash1];
    [self.view addSubview:splash2];

    // Presentación mediante animación del primer splash.
    //Dos bloques de código: 1.- Tipo de animación del splash1. 2.- Se ejecuta un timer con un segundo de duración, que cuando termina, se ejecuta el metodo showSecondSplash.
    [UIView animateWithDuration:0.5 animations:^{
        splash1.alpha = 1.0;
    } completion:^(BOOL finished){
        [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(showSecondSplash:) userInfo:nil repeats: NO];
    }];

}

-(void) showSecondSplash:(NSTimer *) timer{
    //Ocultamos el primer splash, mostramos el segundo splash y programamos un timer para que se oculte el segundo y comience la aplicacion.
    [UIView animateWithDuration:0.5 animations:^{
        splash1.alpha = 0.0;
        splash2.alpha=1.0;
    } completion:^(BOOL finished){
        [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(finishSplash:) userInfo:nil repeats:NO];
    }];
}
-(void) finishSplash:(NSTimer *) timer {
    //Ocultamos el segundo splash
    //Eliminamos ambos splash de la vista
    [UIView animateWithDuration:0.5 animations:^{
        splash2.alpha = 0.0;
    } completion:^(BOOL finished){
        [splash1 removeFromSuperview];
        [splash2 removeFromSuperview];
    }];

}

I would like that when it has finished appeared the NavigationViewController in my storyboard this View Controller that use the Splash is the initial view and then a NavigationViewController with a tableViewController. From that view to the NavigationViewController has a segue with modal style. How? Thanks.


Solution

  • Maybe i understood your question not very clear...

    Is this what you looking for?

    -(void) finishSplash:(NSTimer *) timer {
        //Ocultamos el segundo splash
        //Eliminamos ambos splash de la vista
        [UIView animateWithDuration:0.5 animations:^{
            splash2.alpha = 0.0;
        } completion:^(BOOL finished){
            [splash1 removeFromSuperview];
            [splash2 removeFromSuperview];
            [self performSegueWithIdentifier:@"YourSegueIdentifier" sender:self];
        }];
    
    }