2011-12-07 63 views
1

我有一個導航控制器發佈的問題。我有一個帶點的地圖視圖。當我點擊地圖點時,我用細節創建新的detailViewController。一切工作正常,但當我按下我的應用程序回到mapController然後崩潰。如果我評論釋放一切工作正常,但mapController不釋放。 這裏是我的代碼:當它被釋放導航控制器發佈崩潰的應用程序

FavoriteDetailViewController *detailViewController = [[FavoriteDetailViewController alloc] 
initWithNibName:@"FavoriteDetailViewController" bundle:nil favoriteID: 
[[(DisplayMapAnnotation*)view.annotation detailID] intValue] favoriteName: 
[(DisplayMapAnnotation*)view.annotation title] favoriteCompany: 
[(DisplayMapAnnotation*)view.annotation subtitle] favoriteLocation: 
[(DisplayMapAnnotation*)view.annotation detailLocation] favoriteHtmlString:nil 
favoriteJobIndex:0 favoriteTotalJobs:1 favoriteGeoLat:detailArrayData.geoLat 
favoriteGeoLng:detailArrayData.geoLng favoriteFullUrl:detailArrayData.fullUrl 
favoriteExportUrl:detailArrayData.exportUrl favoriteIdent:1]; 

[self.navigationController pushViewController:detailViewController animated:YES]; 

[detailViewController release]; 
+0

我也遇到過這個問題。我通過不發佈導航控制器解決了這個問題。這不是一個最好的解決方案,但它適用於我。 –

回答

0

東西在FavoriteDetailViewController崩潰。仔細看看dealloc方法。另外請確保您將FavoriteViewController的設置和委派設置爲nil。

+0

我可以有下一個問題嗎?也許愚蠢,但我需要知道。什麼時候在導航控制器中調用dealloc方法?這對我很重要,因爲當我第一次打開detailController時,它會使用一些內存。當我按回按鈕時,我會回去,但內存仍然被使用。當我再次打開它時,它將使用內存的下一部分。當我重複幾次以下我花費大量的內存。在我看來,dealloc方法永遠不會被稱爲 – mysho

+0

我不知道爲什麼,但是當我做到這一點:[self.navigationController pushViewController:detailViewController animated:YES]; detailViewController = nil; [detailViewController release];它工作正常......但我仍然有上述問題 – mysho

相關問題