【问题标题】:Having 2 image picker and issue with didFinishPickingMediaWithInfo有 2 个图像选择器和 didFinishPickingMediaWithInfo 问题
【发布时间】:2012-01-06 13:42:30
【问题描述】:

我有两个 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 类型的对象上找不到属性“标签”

【问题讨论】:

    标签: iphone ios xcode ipad sdk


    【解决方案1】:

    您可以在 .h 文件中声明自己的枚举。

    typedef enum _Type
    {
        eNone,
        eCover,
        eAvatar
    
    }EType;
    

    同时在 .h 文件中声明一个变量 EType _type;。 在下面的方法中,

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

    其他方法同理,设置其他值。

    didFinishPickingMediaWithInfo中,勾选_type并按要求处理。

    【讨论】:

      【解决方案2】:

      试试这个...在 .h 文件中为 uiimagepickercontroller 创建一个对象,并通过更改源类型在这两种情况下使用它并在 dealloc 中释放它..

      【讨论】:

      • 在“UIImagePickerController”类型的对象上找不到属性“标签”
      • 对不起我的错误.. UIImagePickerController 没有标签属性。
      【解决方案3】:

      尝试创建一个 NSObject 类型的自定义类。

      这个类将初始化 UIImagePicker 控制器并创建一个返回图像的委托。

      在上面的代码中,创建自定义类的两个实例,并使用任何保留属性变量来区分它们。

      现在在委托实现中,您将获得图像以及保留属性。根据该值,更新您的 UI。

      希望这会有所帮助。 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-28
        • 2016-07-27
        • 2021-01-30
        • 1970-01-01
        • 2018-02-01
        • 2019-12-20
        相关资源
        最近更新 更多