Mubasher Khan
Mubasher Khan

Reputation: 47

UIImagePickerController in UINavigationController

Guyz, I am displaying UIImagePickerController in UINavigationController but some frame of image picker controller hides under nav bar .Do any Body has the solution and code is

picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.allowsEditing = YES;
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
    //[picker.view setFrame:CGRectMake(0,50, 800, 600)];
    self.nv=[[UINavigationController alloc]init];
    [self.nv.view setFrame:(CGRectMake(0, 50, 320.0, 400.0))];
    // 4. add the nav bar to the main view
    [self.nv addChildViewController:picker];
    [picker didMoveToParentViewController:self.nv];
    picker.view.frame = CGRectMake(15, 50, 290, 400);
    popoverController = [[UIPopoverController alloc] initWithContentViewController:self.nv];
    [popoverController presentPopoverFromRect:[(UIButton *)sender frame]
                                       inView:self.view
                     permittedArrowDirections:UIPopoverArrowDirectionAny
                                     animated:YES];

Upvotes: 0

Views: 620

Answers (1)

VRAwesome
VRAwesome

Reputation: 4803

Try this alternate. :)

#define ISIPHONE [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone
UIPopoverController *popover;

- (IBAction)openImagePicker:(UIButton *)sender
{
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.allowsEditing = YES;
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //UIImagePickerControllerSourceTypeCamera
    if (ISIPHONE)
    {
        [self presentViewController:picker animated:YES completion:NULL];
    }
    else
    {
        if (!popover)
        {
            popover = [[UIPopoverController alloc] initWithContentViewController:picker];
        }
        [popover presentPopoverFromRect:sender.bounds inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    }
}

Upvotes: 1

Related Questions