2011-12-22 23 views
-3

私は変数の値に応じてUIImageViewのイメージを設定するためにif文を使用しています。これは文です:UIImageViewイメージを設定できません

- (void)configureView 
{  
    if (self.detailItem) { 
     if ([detailItem isEqualToNumber:[NSNumber numberWithInt:0]]) { 
      [mapImageView setImage:[UIImage imageNamed:@"0.jpg"]]; 
      NSLog(@"derp"); 
     } 
    } 
} 

「DERPは、」印刷されますが、UIImageViewの画像は変更されません...私はviewDidLoadsetImage:文を置く場合、それは正常に動作します。私は間違って何をしていますか?

+1

ここで、あなたのメソッドはどこですか? setDetailItemで –

+0

: - (無効)setDetailItem:(のNSNumber *)newDetailItem { (detailItem = newDetailItem!)であれば{ detailItem = newDetailItem。 //ビューを更新します。 [self configureView]; } } –

+0

アプリケーションバンドルに「0.jpg」があると仮定して、 'mapImageView'をログに記録してみてください。' nil'または 'frame'が変更されて非表示になりました。 –

答えて

5

私は、ビューコントローラのinitメソッドからconfigureViewメソッドを呼び出していると思います。

その時点で、ビューコントローラのビューはロードされておらず、サブビューのアウトレットはまだnilになります。

のいずれかから、それを呼び出す:動作します

awakeFromNib 
viewDidLoad 
viewWillAppear: 
viewDidAppear: 

UIImage * image = [UIImage imageNamed:@"0.jpg"] 

を割り当てる試しがブレークポイントを置いて、それが正しく割り当てられています作るために、imageの値を見てください。

+0

mapImageViewは値を持ちますが、ImageViewは変更されず、NSLogも機能しなくなりました。 –

+1

お元気ですか。あなたがもっと助けたいなら、いくつかの回答を受け入れる必要がある。 –

+0

"NSImage * image"ところで、UIImage *のイメージにする必要があります。 –

関連する問題