也许我已经看这个太久了;)我的应用程序有一个 NavigationController 和几个 ViewControllers。从两个级别的 ViewControllers 之一(mainViewController),从 rootViewController 加载,我有下面的代码。在 PushViewController 到 dataViewController 并返回(例如按下返回按钮)后,应用程序崩溃。
dataViewController 加载得很好,但是当点击 navigationController 的后退按钮时,应用程序会因对象异常而崩溃。如果我删除:
[dataViewController release];
该应用程序运行良好。这很奇怪,因为 dataViewController 是用相同的方法初始化的。有任何想法吗?
- (void) locationPage
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"NotifyRemoveMap" object:nil];
MyAppDelegate *app = [[UIApplication sharedApplication] delegate];
UINavigationController *navigation = app.navigationCantroller;
[navigation popToRootViewControllerAnimated:NO];
DataViewController *dataViewController = [[DataViewController alloc] initWithNibName:@"DataView" bundle:nil];
[dataViewController setCategoryId:category];
MyLanguage *lang = app.lang;
Mylocation *location = [lang locationForCategoryId:category];
dataViewController.title = location.name;
NSArray *locationArray = [lang locations];
dataViewController.locations = locationArray;
[navigation pushViewController:dataViewController animated:YES];
[dataViewController release]; // With this removed, app doesn't crash
}