2012-07-17 4 views
0

사용자가 UITableViewController에서 행을 선택하면 다른 viewController로 이동하여 UIImageView를 이전에 설정된 이미지로 설정하려고합니다. 지금은 일반화하고 있습니다. 항상 /images/en.jpeg를 보여주십시오.segue.destinationViewController - NSInvalidArgumentException

flickrTVC.m (있는 UITableViewController) :

@implementation flickrTVC 

... 

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"showPhoto"]) 
     UIImage *photo = [UIImage imageWithContentsOfFile:@"images/en.jpeg"]; 
     [segue.destinationViewController setDisplayedPhoto:photo]; 
    } 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [self performSegueWithIdentifier:@"showPhoto" sender:self]; 
} 

내가 이 - (무효) setDisplayedPhoto : (있는 UIImage *) 이미지를; (self.photo를 이미지로 설정) 내 photoViewController.h (segue.destinationViewController). 내가 다음 줄에

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController setDisplayedPhoto:]: unrecognized selector sent to instance 0x1f5c4a60' 

무엇입니까 : [segue.destinationViewController setDisplayedPhoto : 사진];. 구현이 공백 인 경우에도 오류가 계속 표시됩니다. 나는 객관적으로 c를 처음 접했을 뿐이다. 아마도 나는 어떤 것을 엉망으로 만들고있다.

도움을 주시면 감사하겠습니다. 감사합니다.

답변

1

거기에 있던 개체가 메서드 setDisplayedPhoto:을 정의하지 않았기 때문에 예외가 발생합니다. segue.destinationViewController이 현재 완전히 다른 컨트롤러 (예 : 생각한 것과 다른보기)로 설정되어 있기 때문일 수 있습니다. 또한 그 메소드와 비슷한 것을 정의했으나 정확하게 동일하지는 않을 수도 있습니다. 그렇다면 컴파일러에서 setDisplayedPhoto: 메서드 호출에 대한 경고를 발행했을 수 있습니다.

+0

초보자 실수 ... ViewController의 클래스를 generic에서 photoViewController로 변경하지 않았습니다! 신속한 답변을 보내 주셔서 감사합니다. – Krzysiek

관련 문제