How can I call the ViewDidAppear only one time?
iphone, sdk, viewdidappear, xib
Solution
You can try moving all that functionality in the `viewDidLoad:` method instead of the `viewDidAppear`. That one only fires once. Unless there is a reason for you not to...?
EDIT: more code to show what i mean in the comment
in the .h file:
BOOL firstTime;
in the .m file:
-(void)viewDidLoad {
NSLog(@"viewDidLoad actually fired");
//...
firstTime = YES;
}
-(void)viewDidAppear {
//...
if(firstTime){
//show it
firstTime = NO;
}
}
Problem
When the user start the app I want it show the stockholm.xib and It does here: ``` -(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"); } ``` but when user closes the stockholm.xib using: ``` [self dismissModalViewControllerAnimated:YES]; ``` after the animation is done, the app crashes. and the reason is, I guess, viewDidAppear calls twice and therefore it is trying to open the recently closed xib file. now, how Can I call the view did appear only once? so that when the user comes back from Stockholm the viewDidAppear wont be called? any other solution? thanx :)