在ViewControllers之间传递UIImage

时间:2013-04-08 22:29:57

标签: ios objective-c ios6 uiimage

在我的第一个视图控制器中,我有一个UIImage属性,它在实现文件中合成。在推送的第二个视图控制器中,我在那里创建一个UIImage对象,同时从第一个视图控制器将其设置为UIImage属性。最后,我解雇了第二个视图控制器。但是,在视图控制器被解除后,似乎没有保存图像。我的理解是,由于UIImage是一个指针,数据传递是通过引用,因为控制器被解雇,UIImage也是如此。这是正确的,是否有更好的方法来完成这项任务?供您参考,我使用ARC。

在第一个视图控制器(firstVC)中,

@property (strong, nonatomic) UIImage *image;

在第二个视图控制器中,

[firstVC setImage:self.ivarUIImageView.image];

其中ivarUIImageVIew定义为:

@property (strong, nonatomic) IBOutlet UIImageView *ivarUIImageView;

现在让我们说在第三个视图控制器中,我在viewDidLoad方法中:

imgView = [[UIImageView alloc] initWithImage:firstVC.image];

其中imgView定义为:

@property (strong, nonatomic) IBOutlet UIImageView *imgView;

1 个答案:

答案 0 :(得分:1)

您希望确保第一个视图控制器保留UIImage,方法是设置属性strong。此外,如果要在UIImageView中显示它,则必须将UIImageView的image设置为新图像,以便查看UI中反映的更改。