1

ПЕРЦЕВ, я отображая UIImagePickerController в UINavigationController, но некоторые кадры контроллера захватывающего изображения скрывает под нав бар .Ны любого тела имеет решение и кодUIImagePickerController в UINavigationController

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]; 
+0

'сам UIImagePickerController' является' UINavigationController', так что вы не должны обернуть его в другой 'UINavigationController'. –

+0

Я знаю это, Тогда скажите альтернативе –

+0

Добавьте его прямо в popover, не обернув его в контроллер навигации. –

ответ

1

Попробуйте это альтернативный. :)

#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]; 
    } 
} 
+0

Спасибо Это работает, но я должен показать навигационную панель также для какого-то бизнеса –

Смежные вопросы