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?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With