Я делаю простой универсальный загрузчик изображений в xcode 4.2, он позволяет выбрать фотографию из телефонной библиотеки и отобразить ее на экране. Это универсальное приложение, которое отлично работает, используя UIImagePickerController, чтобы открыть меню и выбрать фотографию, но при нажатии кнопки на ipad, которая должна отображать кнопку popoverController, возвращается ошибка.
#import "ImageLoaderViewController.h"
@implementation ImageLoaderViewController
@synthesize imageView = _imageView;
@synthesize popoverController;
-(void)selectPhoto
{
NSLog(@"YYOYOYOYOY");
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
NSLog(@"now i am here");
imagePicker.delegate = self;
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
NSLog(@"camera");
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
else{
NSLog(@"NO camera");
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;}
if(IS_IPHONE)
{
NSLog(@"is an iphone");
[self presentModalViewController:imagePicker animated:YES];
}
else
{
if ([popoverController isPopoverVisible])
[popoverController dismissPopoverAnimated:NO];
popoverController = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
popoverController.delegate = self;
[popoverController presentPopoverFromBarButtonItem:self.navigationItem.rightBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}
}
-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
_imageView.image = [info objectForKey:UIImagePickerControllerOriginalImage];
if(IS_IPHONE)
[self dismissModalViewControllerAnimated:NO];
}
-(void) popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
[popoverController dismissPopoverAnimated:NO];
}
@end