Я пытаюсь использовать UIPopoverContoller для загрузки изображения - PullRequest
1 голос
/ 13 января 2012

Я делаю простой универсальный загрузчик изображений в 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
...