Наличие 2 средства выбора изображений и проблема с didFinishPickingMediaWithInfo - PullRequest
1 голос
/ 06 января 2012

У меня есть два 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"];



    }

проблемавсе два изображения отображают одно и то же изображение, а свойство 'tag' не найдено для объекта типа UIImagePickerController

Ответы [ 3 ]

2 голосов
/ 06 января 2012

Вы можете иметь свой собственный enum, объявив его в файле .h.

typedef enum _Type
{
    eNone,
    eCover,
    eAvatar

}EType;

Также объявите переменную EType _type; в файле .h.В следующем методе

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

Аналогично для другого метода установите другое значение.

В didFinishPickingMediaWithInfo проверьте _type и выполните необходимые действия.

0 голосов
/ 06 января 2012

Попробуйте создать собственный класс типа NSObject.

Этот класс инициализирует контроллер UIImagePicker и создаст делегат, который возвращает изображение.

И в приведенном выше коде создайте два экземпляра своего пользовательского класса и различайте их с помощью любой переменной свойства retain.

Теперь в реализации делегата вы получите изображение, а также свойство retain. В зависимости от значения обновите свой интерфейс.

Надеется, что это поможет. :)

0 голосов
/ 06 января 2012

попробуйте вместо этого ... создать отдельный объект для контроллера uiimagepicker в файле .h и использовать его в обоих случаях, изменив тип источника и выпустив его в dealloc ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...