當用戶開始我想它顯示stockholm.xib 的應用程序,它在這裏所做的:我怎樣才能調用ViewDidAppear只有一次?
-(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");
}
但是當用戶關閉stockholm.xib使用:
[self dismissModalViewControllerAnimated:YES];
後的動畫完成後,應用程序崩潰。 原因是,我猜,viewDidAppear調用兩次,因此它試圖打開最近關閉的xib文件。
現在,我該怎麼稱呼視圖確實只出現過一次?所以當用戶從斯德哥爾摩回來時,viewDidAppear不會被調用?其他解決方案?
感謝名單:)
是的,原因是如果我移動這個: 斯德哥爾摩*開始= [[斯德哥爾摩分配] initWithNibName:零捆綁:無]; [self presentModalViewController:Start animated:YES]; to viewdidLoad,它不會工作。 – hafhadg3 2010-02-14 12:48:04
如果您只想在第一次出現視圖時顯示它,只需使用布爾標誌來判斷它是否是第一次。 BOOL firstTime = true; if(... && firstTime){firstTime = false; ...} – Dimitris 2010-02-14 13:17:04
它仍然無法正常工作。 .h static BOOL firstTime = TRUE; .m - (void)viewDidAppear:(BOOL)animated { \t [super viewDidAppear:animated]; \t如果(firstTime = TRUE){ \t \t //轉到自定義頁面 \t} \t firstTime = FALSE; } 我得到這個錯誤: 0x018ce464 <+0665> JNE 0x18ce481 < - [UIWindowController transitionViewDidComplete:fromView:toView:] + 694> 請幫幫忙! – hafhadg3 2010-02-17 21:37:22