我在我的应用程序中使用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, 马丁
答案 0 :(得分:1)
我相信这是因为你在imageController上调用release(第5行),然后尝试pushModalView你刚刚发布的对象(第6行)。如果你的self.correctedImageViewController保留了imageController,你可以在推送后推送self.correctedImageViewController或释放imageController。