Ошибка Ipad UIImagePickerController и UIPopoverController - PullRequest
5 голосов
/ 12 мая 2010

Я использую этот код для открытия всплывающего окна с помощью imagepicker

-(IBAction)photosAction:(id)sender 
{
// dismiss any left over popovers here
UIImagePickerController* picker = [[UIImagePickerController alloc] init]; 
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
picker.delegate = self; 

UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:picker];
self.popoverController = popover;          
popoverController.delegate = self;
[popoverController presentPopoverFromBarButtonItem:sender  permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
[picker release];

Но это приводит к этой ошибке Запрос на член 'popoverController' во что-то, не являющееся структурой или объединением , и этоошибка 'popoverController' undeclared (первое использование в этой функции) .

Также я хочу отключить всплывающее окно при выборе изображения.

Какой код следует ввести вследующая функция для удаления поповера после выбора изображения.

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

Спасибо за помощь!

Ответы [ 3 ]

7 голосов
/ 17 мая 2010

Эта ошибка была вызвана тем, что моей функции требуется элемент панели кнопок, и я использовал обычную кнопку пользовательского интерфейса.

7 голосов
/ 12 мая 2010

Ошибка означает, что popoverController не был объявлен в контроллере представления. Вам нужно добавить его в интерфейс как ivar и свойство (оно не встроено):

@interface ... {
     ...
     UIPopoverController *popoverController;
}
@property (nonatomic, retain) UIPopoverController *popoverController;
@end

В реализации добавьте @synthesize, установите его равным nil в viewDidUnload и отпустите в dealloc.

Чтобы закрыть поповер, вы должны вызвать dismissPopoverAnimated: .

[self.popoverController dismissPopoverAnimated:YES];
0 голосов
/ 22 января 2013

попробуйте использовать этот код:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
[popover presentPopoverFromRect:CGRectMake(0.0, 0.0, 400.0, 400.0) 
                         inView:self.view
       permittedArrowDirections:UIPopoverArrowDirectionAny 
                       animated:YES];
...