在我的第一个视图控制器中,我有一个在实现文件中合成的UIImage属性。在推送的第二个视图控制器中,我在那里创建一个UIImage对象,同时将它设置为来自第一个视图控制器的UIImage属性。最后,我解雇了第二个视图控制器。但是,视图控制器被解散后,图像似乎并未保存。我的理解是,因为UIImage是一个指针,数据传递是通过引用,并且由于控制器被解雇,UIImage也是如此。这是否正确,是否有更好的方法来完成这项任务?为了您的参考,我正在使用ARC。在ViewControllers之间传递UIImage
在第一视图控制器(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;
在你的第三个VC中,你如何定义firstVC?如果你记录第一个VC(在第三个VC的viewDidLoad中),它是否为零? – rdelmar 2013-04-08 23:14:45
如果你只是想处理相同的图像,为什么不把它放在单例类(例如AppDelegate)? – Mehdi 2013-04-08 23:24:10
你在这里做什么真的不清楚。在第二个视图控制器中,您在firstVC上调用setImage - 什么是firstVC?指向第一个视图控制器的指针?图像视图?在第三个视图控制器中,你说你有一个IBOutlet imgView,但是然后你分配init - 如果它是IB中图像视图的出口,你不想这样做。 – rdelmar 2013-04-08 23:36:51