我有一個基於UINavigationController
的故事板的應用程序。 我有三個視圖A,B,C。當用戶點擊相機按鈕時,我在視圖A中啓動相機,在成功點擊圖像並獲取該圖像後,我正在調用繼續前進到B,這是一個PUSH循環。在視圖B中,我顯示的圖像具有處理圖像的選項。當用戶選擇處理它時,會用PUSH segue查看C.現在我想要的是處理後的圖像應該發回到查看B,我將顯示處理後的圖像。如何在彈出視圖後將UIImage傳遞迴視圖
問題是當我使用指向B(delegate
)應用程序崩潰的指針將圖像從C傳回B時。 代碼是如下
鑑於乙傳遞圖片查看C:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if ([[segue identifier] isEqualToString:@"Segue1"])
{
// Get reference to the destination view controller
CViewController *vc = [segue destinationViewController];
// Pass any objects to the view controller here, like...
vc.imageChosen = imageChosen;
vc.delegate = self;
}
}
delegate
在CViewController
聲明如下:
@property (nonatomic,retain) id delegate;
鑑於控制器C返回圖像回來,我正在做以下
-(IBAction)actionBack
{
BViewController *vc = (BViewController *)delegate;
vc.imageChosen = imageCropped;
[self.navigationController popViewControllerAnimated:TRUE];
}
actionBack
是行上在BViewController.h
附連到背上視圖C鈕選擇
應用與EXC_BAD_ACCESS
崩潰這是如下
@property (nonatomic,retain) UIImage *imageChosen;
我已經檢查imageCropped
具有我試圖保存到庫以及有效數據imageCropped
是與以下聲明
@property (nonatomic,retain) UIImage *imageCropped;
我不明白這是爲什麼崩潰和援助將是CViewController
屬性讚賞。
1)你能提供應用程序崩潰日誌嗎? 2)@property(nonatomic,retain)id delegate; - 這是不好的做法,使用assaign或弱修飾符代替 – frankWhite
沒有問題不是委託它給我訪問視圖控制器權利它是imagechosen屬性導致訪問不良 –
@vishal實際上,您描述的錯誤_can_可能是'delegate'的問題(以及你在'actionBack'中對'delegate' ivar的使用有點可疑......通常你會參考getter方法,或者你會參考帶有下劃線的ivar) 。底線,你沒有向我們展示足夠的可能性,否認「代表」可能不成問題。 – Rob