4

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;
}

しかし、私がセグエをするとき、UIImageViewは白です...なぜこれができるのでしょうか?

4

2 に答える 2

10

prepareForSegue:sender:ソースViewControllerがメッセージを受信するまでに、宛先ViewControllerはそのView階層をロードしていません。したがって、宛先VCの_imageView変数はnilです。

推奨されるアプローチは、イメージ(またはおそらくさらに良いのはイメージファイル名)を宛先VCのプロパティとして保存してから、イメージビューのイメージを宛先VCviewDidLoadまたはviewWillAppear:メソッドに設定することです。

于 2012-07-17T03:51:19.090 に答える
0

ビューのoを設定する前に[vcview]を呼び出します

于 2013-10-27T10:32:46.667 に答える