iphone - mini - Cómo realizar Segue con retraso
ultimo ios (2)
Puede usar dispatch_after
de GCD para ejecutar su código segue 2 segundos después de que aparezca la vista, por ejemplo:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self performSegueWithIdentifier:@"splashScreenSegue" sender:self];
});
}
Además, asegúrese de recordar llamar a la implementación súper cuando anule los métodos del ciclo de vida de UIViewController.
En mi guión gráfico, tengo una vista como una pantalla de bienvenida. En esta vista, ya tengo un botón como "Abrir aplicación" que abre la vista de menú con una transición modal. Pero también quiero que la pantalla se realice automáticamente, como después de que aparezca la vista de 2 segundos.
Algún código aquí:
- (void)viewDidAppear:(BOOL)animated
{
[self performSegueWithIdentifier:@"splashScreenSegue" sender:self];
}
Como puede ver, ya uso performSegueWithIdentifier pero funciona de inmediato. ¿Hay algún método para retrasarlo?
Gracias por adelantado.
Creo que hay un mejor enfoque que le permite al controlador manejar los problemas de envío. Puedes lograrlo así:
primero crea un método como este que luego utilizarás su selector
- (void)showAnotherViewController{
[self performSegueWithIdentifier:@"yourSegueToAnotherViewController" sender:self];
}
Luego, cuando desee mostrar otro controlador de vista, use esta línea de código dentro de su controlador de vista actual:
[self performSelector:@selector(showAnotherViewController) withObject:nil afterDelay:yourDelayInSeconds];