我有两个UIImageView,每个都应该显示来自选择器的不同图像,但我可以使用一个委托:- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info ;
这是我的代码:
- (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
类型的对象上找不到属性'标签'
答案 0 :(得分:2)
你可以让你自己的枚举在.h文件中声明它。
typedef enum _Type
{
eNone,
eCover,
eAvatar
}EType;
还在.h文件中声明变量EType _type;
。
在以下方法中,
- (void) importFormLibraryForCover
{
// set variable
_type = eCover;
...
}
与其他方法类似,请设置其他值。
在didFinishPickingMediaWithInfo
中,检查_type
并按要求处理。
答案 1 :(得分:0)
尝试这样做...在.h文件中为uiimagepickercontroller创建一个对象,并在两种情况下通过更改源类型并在dealloc中释放它来使用它。
答案 2 :(得分:0)
尝试创建NSObject类型的自定义类。
此类将初始化UIImagePicker控制器并创建一个返回图像的委托。
在上面的代码中,创建自定义类的两个实例,并使用任何retain属性变量区分它们。
现在在委托实现中,您将获得图像以及retain属性。根据值,更新您的UI。
希望这会有所帮助。 :)