2010-07-05 71 views
1

我想在UIImageView中显示UIImage,但它不起作用,我不知道为什么。 你能帮我吗。无法在UIImageView中显示UIImage

我用下面的代码:

-(void) showCorrectedImage { 

MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 
CorrectedImageController *imageController = [[CorrectedImageController alloc] initWithNibName:@"CorrectedImageView" bundle:nil]; 
UIImageView *imgView = [[UIImageView alloc] initWithImage:originalImage]; 

imageController.imageView = imgView; 

[imgView release]; 
[delegate.navController pushViewController:imageController animated:YES]; 

} 

有一个称为“CorrectedImageView.xib”一个XIB文件和厦门国际银行内我已经把一个的UIImageView。我已将UIImageView出口与图像视图和视图出口连接起来。 原始图像被定义为UIImage并用文件初始化。

BR, 马丁

回答

1

在这些线路

UIImageView *imgView = [[UIImageView alloc] initWithImage:originalImage]; 
imageController.imageView = imgView; 
[imgView release]; 

你正在创建一个新的UIImageView例如,当你已经有一个在XIB文件。如果您在IB连接良好,这应该是所有你需要做的:

imageController.imageView.image = originalImage; 

而且,请不要忘记释放imageController你把它像这样经过:

[imageController release]; 

附:至于为什么你的代码不起作用,新创建的UIImageView实例虽然取代了视图控制器中的前一个,但并未作为视图控制器视图的子视图添加。因此,在您的代码执行后,您有:

  1. UIImageView实例保留为主视图的子视图。
  2. 另一个UIImageView实例用您的图像初始化并保留在视图控制器中,但不是主视图的子视图,因此不会显示。
+0

对不起,但我没有得到它运行。也许我的笔尖文件是错误的。 它看起来如下: - 文件的拥有者(CorrectedImageController) - 首先响应(UIResponder) - 查看(的UIView) --ImageView(UIImageView9 我已经连接文件的所有者视图属性的视图元素 和文件的所有者的ImageView属性设置ImageView的元素。 我错过了什么? BR, 马丁 – Martin 2010-07-06 18:25:37

+0

看起来正确的,你确定'originalImage'不是零? – 2010-07-06 19:03:59

0

对不起,但我不明白它运行。也许我的笔尖文件是错误的。 它看起来如下:

-File's Owner (CorrectedImageController) 
-First Responder (UIResponder) 
-View (UIView) 
--ImageView (UIImageView9 

我已经连接文件的所有者视图属性的视图元素 和文件的所有者的ImageView属性设置ImageView的元素。

我错过了什么吗?

BR, Martin Martin