我想要使用具有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是白色的...为什么会这样?
答案 0 :(得分:10)
在源视图控制器收到prepareForSegue:sender:
消息时,目标视图控制器尚未加载其视图层次结构。因此,目标VC的_imageView
变量为nil
。
推荐的方法是将图像(或者甚至更好的图像文件名)存储为目标VC的属性,然后在目标VC的viewDidLoad
或{{中设置图像视图的图像1}}方法。
答案 1 :(得分:0)
在设置视图o之前调用[vc view]