presentModalViewController:animated:解雇后崩溃
问题描述:
我目前遇到问题UIViewController
的presentModalViewController: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];
感谢您的回答!其实,这个错误还在后面。我在表视图中有一些自定义的UITableViewCells,这显然导致了-release-问题。如果导航控制器得到释放,一些丑陋的事情发生在单元格上 - 我仍然必须调查究竟发生了什么。 我会将这个问题标记为无论如何 - 在thisModalViewController:animated:-part(除了根视图控制器的东西,谢谢!),没有什么可以修复的,所以我可能会发布有关这些UITableViewCell问题的另一个问题后来。 – user112141 2009-05-25 17:58:55