UINavigationController EXC_BAD

时间:2010-07-06 22:35:08

标签: iphone uiviewcontroller exc-bad-access

我在我的应用程序中使用UINavigationController。 在第一个视图中,我显示一些信息,并有一个按钮,用于从相机加载图片。这到目前为止工作正常。当图片加载时,我想在第二个视图中的UIImageView中显示图片。因此我使用以下代码。

MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
CorrectedImageController *imageController = [[CorrectedImageController alloc] initWithNibName:@"CorrectedImageView" bundle:nil];
self.correctedImageViewController = imageController;
[imageController release];      
[delegate.navController pushViewController:imageController animated:YES];

加载第二个视图并显示图片。但我在调试器控制台中收到一条EXC_BAD_ACCESS消息,我的应用程序阻止了用户界面。

在第二个视图中,图片按如下方式加载:

- (void)viewDidLoad {
  MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
  [imageView setImage:delegate.correctedImage];
  [super viewDidLoad];
}

谁能告诉我,我做错了什么? 我的nib文件看起来:

-File's Owner (Corrected Image Controller)
-First Responder (UIResponder)
-View (UIView)
--ImageView (UIImageView)

文件的所有者视图属性已连接到视图。 并且imageView属性连接到ImageView。

有谁能告诉我,我做错了什么?

BR, 马丁

1 个答案:

答案 0 :(得分:1)

我相信这是因为你在imageController上调用release(第5行),然后尝试pushModalView你刚刚发布的对象(第6行)。如果你的self.correctedImageViewController保留了imageController,你可以在推送后推送self.correctedImageViewController或释放imageController。