2010-07-05 60 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