2012-03-02 66 views
0

iPhone n00b在這裏,雖然我確實在商店有一個應用程序。設置來自ViewController的UIImageView圖像

我有兩個簡單的ViewControllers,直接從xCode中的Utility Application模板中獲取。我有兩個UIImageViews,一個在故事板中的每個ViewController。我有正確迷上了網點(據我所知),因爲我可以設置的第一的ViewController精細圖像與

[self.imageView setImage:@"test.png"]

當我嘗試做基本上是同樣的事情在我的FlipsideViewController,什麼都沒發生。

- (void)selectImage:(UIImage *)img 
{ 
    NSLog(@"%@", img); 
    self.editImageView.image = img; 
    NSLog(@"%@", self.editImageView.image); 
} 

此代碼,給出正確的結果記錄所述第一NSLog語句之後,但在第二行不具有所期望的效果,並且第三線產生(null)

編輯:更新coed以反映我想顯示「img」而不是使用imageNamed初始化的另一個圖像,這只是一個測試。

回答

3

如果您將UIImage傳遞給您的方法,爲什麼您通過imageNamed:函數設置imageView

如果您傳遞的是正確的UIImage,那麼您應該執行以下操作。

- (void)selectImage:(UIImage *)img 
{ 
    NSLog(@"%@", img); // This is the UIImage being passed. 
    [self.editImageView setImage:img]; 
    NSLog(@"%@", self.editImageView.image); 
} 

從我所能看到的就是所需要的一切。如果這是錯誤的,請更新您的問題,以便我可以相應地回答。

編輯,由於評價

所以,從意見我已經收集的問題是什麼。

您的意思是,在-(void)viewDidLoad中,您可以使用[UIImage imageNamed:]方法設置圖像,這很容易。這很好,但是你想用導致問題的單獨方法來完成。

我建議做的是測試以下內容。

- (void)viewDidLoad 
{ 
     [super viewDidLoad]; 
     // Do any additional setup after loading the view from its nib. 

     UIImage *imageYouWantToPass = [UIImage imageNamed:@"test.png"]; 
     [self selectImage:imageYouWantToPass]; 

} 

確保方法selectImage:被添加到您的.h文件,這樣你沒有得到任何警告。我認爲這就是答案,但如果這仍然不能解決您的問題,請提供更多信息。

+0

更新,謝謝。 – 2012-03-04 22:38:40

+0

你試過了嗎[[editImageView setImage:img];'而不是? – 2012-03-06 03:37:43

+0

是的,它沒有效果。如果我把代碼'[editImageView setImage:[UIImage imagenamed:@「test.png」]];'放入FlipsideViewController的' - (void)viewDidLoad'方法中,image _will_會加載。然而這提出了另一個問題,因爲我無法從FlipsideViewController的viewDidLoad方法訪問MainViewController的img屬性。的Bleh! – 2012-03-06 04:09:17

1

[self.imageView setImage:[UIImage imagenamed:@"test.png"]]

出現U缺少..

而在第二種情況下。看起來你已經連接imageView.xib,但沒有property.Try使用它沒有自我。或者在屬性中聲明IBOutlet

0

檢查editImageView是否已正確初始化。第一次NSLog工作正常意味着你有適當的圖像,第二次NSLog不起作用意味着editImageView可能有問題。

0

當您將UIImage傳遞給您的方法(selectImage:)然後無需通過imageNamed:方法設置imageView (UIImageView)。 因爲您在img實例中有UIImage,所以您可以在該函數內設置imageimg

如果您傳遞的是正確的UIImage,那麼您應該執行以下操作。

- (void)selectImage:(UIImage *)img 
{ 
    NSLog(@"%@", img); // here you have Image in img, so just set Image From this img. 

    [self.editImageView setImage:img]; 
    NSLog(@"%@", self.editImageView.image); 
} 

我希望它會清除一切...... !!!!

+0

謝謝,但我的問題不是顯示錯誤的圖像,而是顯示圖像。我沒有說清楚,並改變了我的問題以反映這一點。 – 2012-03-04 22:38:27

+0

@stevesullivan NP,當您調用該方法時,您需要將'Image'傳遞給該方法('selectImage')作爲'[self selectImage:[UIImage imageNamed:@「myImage.png」]];' – Kamarshad 2012-03-05 07:33:52

+0

是的,我意識到這一點,並且第一條NSLog語句打印正確的事實證實了這一點。我知道img正在被正確傳遞。麻煩的是[self.editImageView setImage:img];似乎沒有任何效果,即NSLog(@「%@」,self.editImageView.image);返回(null)。 – 2012-03-05 22:18:16

相關問題