presentModalViewController:animated:解雇后崩溃

问题描述:

我目前遇到问题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(按预期)。

这到底是怎么回事?

当你创建一个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