Lorsque l'utilisateur démarre l'application que je veux montrer la stockholm.xib et il fait ici:Comment puis-je appeler le ViewDidAppear une seule fois?
-(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");
}
mais lorsque l'utilisateur ferme la stockholm.xib en utilisant:
[self dismissModalViewControllerAnimated:YES];
après l'animation est fait, l'application se bloque. et la raison en est, je suppose, viewDidAppear appelle deux fois et par conséquent il essaie d'ouvrir le fichier xib récemment fermé.
maintenant, comment puis-je appeler la vue est apparue qu'une seule fois? de sorte que lorsque l'utilisateur revient de Stockholm, viewDidAppear ne sera pas appelé? toute autre solution?
:) Thanx
Oui, la raison en est que si je déplace ceci: Stockholm * Start = [[Stockholm alloc] initWithNibName: nil bundle: nil]; [self presentModalViewController: Démarrer l'animation: YES]; à viewdidLoad, cela ne fonctionnera pas. – hafhadg3
Si vous voulez seulement l'afficher la première fois que la vue apparaît, utilisez simplement un drapeau booléen pour dire si c'est la première fois ou non. BOOL firstTime = true; if (... && firstTime) {firstTime = false; ...} – Dimitris
Ça ne marche toujours pas. .h static BOOL firstTime = VRAI; .m - (vide) viewDidAppear: (BOOL) animé { \t [super viewDidAppear: animé]; \t si (firstTime = TRUE) {// \t \t Aller à la page personnalisée \t} \t firstTime = false; } i obtenir cette erreur: 0x018ce464 <+0665> jne 0x18ce481 <- [UIWindowController transitionViewDidComplete: fromView: toView:] + 694> s'il vous plaît HELP! – hafhadg3