2011-10-17 161 views
0

下面的代碼工作正常從iOS的3.0到iOS 4.3模擬器但崩潰上的iOS5ViewDidAppear崩潰在iOS 5.0模擬器

-(void)viewWillAppear:(BOOL)animated { 
[self.tableView reloadData]; 
     [super viewWillAppear:animated]; 

}

-(void)viewDidAppear:(BOOL)animated { 
[super viewDidAppear:animated]; 
     [self.navigationController viewDidAppear:animate]; 

}

我在得到EXC_BAD_ACCESS [ self.navigationController viewDidAppear:animate],它使應用程序崩潰。

它在以前版本中沒有任何問題時正常工作。

此應用程序是在部署目標3.0的XCode4中開發的。當我用iOS5升級他的iPhone時,我的用戶剛剛發現應用程序崩潰。 我能夠重現問題,但不知道如何解決它。

任何人都可以點亮一下嗎?

+0

結帳這個THRES可能有幫助你 http://stackoverflow.com/questions/7810288/viewwillappear-being-called-twice-in-ios5 –

回答

0

[self.navigationController viewDidAppear:animate];是這裏的問題。在iOS 5中,它會一遍又一遍地遞歸調用這個視圖控制器的viewDidAppear方法,直到它崩潰。爲什麼您需要在導航控制器上手動調用viewDidAppear?如果實際上有必要讓代碼正常工作,那麼如果您需要這樣做,您可能需要回溯一下,因爲其他情況一定是錯誤的。

另外一件事情就是好管家:在你的viewWillAppear中,[super viewWillAppear:animated];應該是第一個它的方法。