Cuando el usuario inicia la aplicación que quiero que se muestre la stockholm.xib y lo hace aquí:¿Cómo puedo llamar al ViewDidAppear solo una vez?
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
NSUserDefaults *startPage =[NSUserDefaults standardUserDefaults];
NSString *page =[startPage stringForKey:@"page"];
NSLog(page);
if(page==nil)
{
//Do nothing
}
else if ([page isEqualToString:@"Default"])
{
//Do nothing
}
else if ([page isEqualToString:@"Stockholm"])
{
NSLog(@"going to Stockholm");
Stockholm *Start =[[Stockholm alloc]initWithNibName:nil bundle:nil];
[self presentModalViewController:Start animated:YES];
}
else {
NSLog(@"HAHA");
}
pero cuando el usuario cierra la stockholm.xib usando:
[self dismissModalViewControllerAnimated:YES];
después de la animación es hecho, la aplicación falla. y la razón es que, supongo, viewDidAppear llama dos veces y, por lo tanto, está intentando abrir el archivo xib cerrado recientemente.
ahora, ¿Puedo llamar a la vista apareció una sola vez? para que cuando el usuario regrese de Estocolmo no se llame a viewDidAppear? cualquier otra solución?
Gracias :)
sí, la razón es que si muevo esto: Stockholm * Start = [[Stockholm alloc] initWithNibName: nil bundle: nil]; [self presentModalViewController: Inicio animado: SÍ]; para viewdidLoad, no funcionará. – hafhadg3
Si solo quiere mostrarlo la primera vez que aparece la vista, simplemente use un indicador booleano para saber si es la primera vez o no. BOOL firstTime = verdadero; if (... && firstTime) {firstTime = falso; ...} – Dimitris
Todavía no funciona. .h estática BOOL firstTime = TRUE; .m - (void) viewDidAppear: (BOOL) animado { \t [super viewDidAppear: animation]; \t si (firstTime = true) {// \t \t Ir a la Página personalizada \t} \t firstTime = false; } consigo este error: 0x018ce464 <+0665> JNE 0x18ce481 <- [UIWindowController transitionViewDidComplete: fromView: toView:] + 694> Por favor, ayuda! – hafhadg3