2012-01-06 37 views
1

我有兩個UIImageView的,他們每個人都應該顯示從選擇器不同的圖像,但我可以用一個代表:- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info ;有2影像選擇器和問題與didFinishPickingMediaWithInfo

這裏是我的代碼:

- (void) importFormLibraryForCover { 


    UIImagePickerController *ipc = [[UIImagePickerController alloc]init]; 
    ipc.delegate = self; 
    CGRect rect = CGRectMake(0 ,0, 200,660); 

    pop = [[ UIPopoverController alloc]initWithContentViewController:ipc]; 
    [pop setDelegate:self]; 
    [pop presentPopoverFromRect:rect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES]; 
    [ipc release]; 


} 

    - (void) importFormLibraryForAvatar { 


//same above code 

} 



- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    [picker dismissModalViewControllerAnimated:YES]; 


     avatarImg.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 

// here is the problem : 
     coverImg.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 



    } 

問題是所有兩個imageViews顯示相同的圖片和屬性'標記'找不到類型的對象UIImagePickerController

回答

2

您可以讓自己的枚舉在.h文件中聲明它。

typedef enum _Type 
{ 
    eNone, 
    eCover, 
    eAvatar 

}EType; 

還在.h文件中聲明變量EType _type;。 在下面的方法中,

- (void) importFormLibraryForCover 
{ 
    // set variable 
    _type = eCover; 
... 
} 

類似地,對於其它方法,設定其它值。

didFinishPickingMediaWithInfo中,檢查_type並根據需要處理。

+0

非常感謝你完成了! – 2012-01-06 14:34:46

0

試試這個,而不是...爲.h文件中的uiimagepickercontroller創建一個單一的對象,並將其用於這兩種情況下通過更改源類型並將其釋放到dealloc中。

+0

在類型'UIImagePickerController' – 2012-01-06 13:55:39

+0

對象上未找到屬性'標記'對不起,我的錯誤.. UIImagePickerController沒有標籤屬性。 – 2012-01-06 13:58:40

+0

任何解決方案? – 2012-01-06 14:03:52

0

嘗試創建一個NSObject類型的自定義類。

該類將初始化UIImagePicker控制器並創建一個返回圖像的委託。

並在上面的代碼中,創建您的自定義類的兩個實例,並區分它們與任何retain屬性變量。

現在在委託實現中,您將獲得圖像以及retain屬性。根據該值,更新您的用戶界面。

希望這有助於。 :)