在我的第一個視圖控制器中,我有一個在實現文件中合成的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