隐藏UIPopoverController背景

时间:2014-03-22 23:34:07

标签: ios objective-c uinavigationcontroller uiimagepickercontroller

我正在加载一个包含UIImagePickerController的UIPopoverController,当视图加载时,它会在popover后面加载一个seethrough视图,如果触摸它会解除其中的popover和cameraview。

我想知道是否有办法删除此背景视图并使用按钮控制解雇自己。

我的目标是在左侧显示一些信息,在右侧显示相机弹出视图,但我无法执行此操作,因为某些信息是可选择的,即文本字段,目前此背景视图阻止选择它们。

这是我的popovercontroller和UIImagePickerController的代码。

- (void) cameraButtonSelected
{
    // set background
    UIView *cameraBG = [[UIView alloc] initWithFrame:CGRectMake(0.0, 20.0, screenHeight, screenWidth-64)];
    cameraBG.backgroundColor = [UIColor blackColor];
    cameraBG.alpha = 0.8;
    [self.view addSubview:cameraBG];

    // create picker
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.allowsEditing = YES;
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;

    if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {
        CGFloat scaleFactor=1.3f;
        picker.cameraViewTransform = CGAffineTransformScale(CGAffineTransformMakeRotation(M_PI * -90 / 180.0), scaleFactor, scaleFactor);
    }

    // create popover
    self.popOver = [[UIPopoverController alloc] initWithContentViewController:picker];
    [self.popOver presentPopoverFromRect:CGRectMake(500, 100, 0, 0) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:NO];
}

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    viewController.preferredContentSize = CGSizeMake(805, 650);
}

1 个答案:

答案 0 :(得分:0)

你可以打电话,  self.popOver.hidden = YES;self.popOver.hidden = NO;

如果您仍希望绘制pop0ver视图但仍隐藏给用户,则可以调用self.pop0ver.alpha = 0.0f;