0

我在我的应用程序中使用 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 消息,并且我的应用程序阻止了 UI。

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

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

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

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

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

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

BR,马丁

4

1 回答 1

1

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

于 2010-07-07T05:05:48.100 回答