将图像从一个 UIViewController 发送到另一个

Send image from one UIViewController to another

我想传递一张我从图库或相机拍摄的图像,我希望它传递给下一个视图。
我是按代码做的。

    PhotoDocumentViewController *objectPhotoDocument = [[PhotoDocumentViewController alloc]initWithNibName:@"PhotoDocumentViewController" bundle:nil];

[objectPhotoDocument.imgSelectedPhoto setImage:finalImage];
[self.navigationController pushViewController:objectPhotoDocument animated:YES];

这里的 imgSelectedPhoto 是我在下一个视图 (PhotoDocumentViewController) 上声明的 UIImageView。

但是当它推送下一个视图时。无法显示图像我不知道是什么问题。 请帮助我。

你需要在view controller加载完view后设置view和subview的属性,也就是在viewDidLoad函数里面。类似于:

PhotoDocumentViewController *objectPhotoDocument = [[PhotoDocumentViewController alloc]initWithNibName:@"PhotoDocumentViewController" bundle:nil];
objectPhotoDocument.imageToSend = finalImage;
[self.navigationController pushViewController:objectPhotoDocument animated:YES];

PhotoDocumentViewController.h

@interface PhotoDocumentViewController : UIViewController
...
@property (nonatomic, strong) UIImage *imageToSend;
@end

PhotoDocumentViewController.m

- (void)viewDidLoad
{
     ...
     imgSelectedPhoto.image = self.imageToSend;
     ...
}

PhotoDocumentViewController 中的 UIImage 创建一个 属性 作为:

@property (nonatomic, strong) UIImage *myImage

并设置为:

[objectPhotoDocument setMyImage:finalImage];

在推动你的 objectPhotoDocument.

之前

这样你就会有一个指向 UIImage 对象的强指针。并在 PhotoDocumentViewControllerviewDidLoad 方法中将此对象设置为您的 UIImageView.

[self.imgSelectedPhoto setImage:self.myImage];