我想转到具有 UIImageView 的 photoViewController。
在 flickrTVC 中,我说:
-(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];
}
}
而 setDisplayedPhoto 方法的实现是:
-(void)setDisplayedPhoto:(UIImage *)image
{
[_imageView setImage:image]; //@property (nonatomic, strong) IBOutlet UIImageView *imageView;
}
但是当我做 segue 时, UIImageView 是白色的......为什么会这样?
最佳答案
当您的源 View Controller 收到 prepareForSegue:sender:
消息时,您的目标 View Controller 尚未加载其 View 层次结构。所以你的目标 VC 的 _imageView
变量是 nil
。
推荐的方法是将图像(或者甚至更好,图像文件名)存储为目标 VC 的属性,然后在目标 VC 的 viewDidLoad
或 viewWillAppear:
方法中设置 ImageView 的图像。
关于objective-c - 在 prepareForSegue 中设置 UIImageView.image,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11515643/