2009-05-25 54 views
0

我目前遇到問題UIViewControllerpresentModalViewController:animated:presentModalViewController:animated:解僱後崩潰

我使用下面的代碼來設置和顯示模式視圖控制器:

UINavigationController *navigationController = [[UINavigationController alloc] init]; 
AddSerialController *serialController = [[AddSerialController alloc] initWithNibName:@"AddSerial" bundle:nil]; 
[navigationController pushViewController:serialController animated:NO]; 

[self.parentViewController presentModalViewController:navigationController animated:YES]; 

[serialController release]; 
[navigationController release]; 

的應用(在iPhone模擬器運行)只要dismissModalViewControllerAnimated:叫崩潰。 GDB說它崩潰在objc_msgSend

如果我註釋掉最後一行代碼(發佈導航控制器),一切正常,但我泄漏UINavigationController(按預期)。

這到底是怎麼回事?

回答

2

當你創建一個UINavigationController,你應該給它一個根視圖控制器:

AddSerialController *serialController = [[AddSerialController alloc] initWithNibName:@"AddSerial" bundle:nil];

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:serialController];

[serialController release];

[self.parentViewController presentModalViewController:navigationController animated:YES];

[navigationController release];

+0

感謝您的回答!其實,這個錯誤還在後面。我在表視圖中有一些自定義的UITableViewCells,這顯然導致了-release-問題。如果導航控制器得到釋放,一些醜陋的事情發生在單元格上 - 我仍然必須調查究竟發生了什麼。 我會將這個問題標記爲無論如何 - 在thisModalViewController:animated:-part(除了根視圖控制器的東西,謝謝!),沒有什麼可以修復的,所以我可能會發布有關這些UITableViewCell問題的另一個問題後來。 – user112141 2009-05-25 17:58:55