2011-12-22 5 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

당신의 방법이/where 인 경우? 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 * 이미지 여야합니다. –

관련 문제