set UIImageView.image in prepareForSegue

objective-c

Solution

Your destination view controller hasn't loaded its view hierarchy by the time your source view controller receives the `prepareForSegue:sender:` message. So your destination VC's `_imageView` variable is `nil`.

The recommended approach is to store the image (or, probably even better, the image file name) as a property of the destination VC, and then set the image view's image in the destination VC's `viewDidLoad` or `viewWillAppear:` method.

Problem

I want to segue to a photoViewController that has an UIImageView. In flickrTVC, I say: ``` -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"showPhoto"]) { photoViewController *vc = [segue destinationViewController]; UIImage *photo = [UIImage imageWithContentsOfFile:@"images/en.jpeg"]; [vc setDisplayedPhoto:photo]; } } ``` and the setDisplayedPhoto method's implementation is: ``` -(void)setDisplayedPhoto:(UIImage *)image { [_imageView setImage:image]; //@property (nonatomic, strong) IBOutlet UIImageView *imageView; } ``` But when I do segue, the UIImageView is white... Why could this be?

Original source