如何防止解除popover控件?

时间:2012-04-30 07:09:31

标签: iphone ios ipad

当我触摸任何视图时,我不想忽略弹出控制器。可能吗? 我正在使用以下代码来显示弹出控制器。

UIPopoverController* popoverCamera;

popoverCamera= [[UIPopoverController alloc] initWithContentViewController:videoRecorder];

[popoverCamera presentPopoverFromRect:CGRectMake(cropRectangleButton.frame.origin.x,cropRectangleButton.frame.origin.y,0,0) inView:innerview permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
NSLog(@"start recording-->%d",[videoRecorder startVideoCapture]);
[videoRecorder startVideoCapture];
[self presentModalViewController:videoRecorder animated:YES];  
[videoRecorder release];

5 个答案:

答案 0 :(得分:3)

是的,这是可能的。实现以下委托方法:

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
     return NO;
}

希望这对你有所帮助。

答案 1 :(得分:1)

来自链接disable dismissal of uipopoverview controller

显示时,弹出窗口外部的水龙头会自动解除弹出窗口。要允许用户与指定视图交互而不关闭弹出框,可以将一个或多个视图分配给passthroughViews属性。弹出窗口内的点击不会自动导致弹出窗口被解除。您的视图和视图控制器代码必须显式处理popover中的操作和事件,并根据需要调用dismissPopoverAnimated:方法。

答案 2 :(得分:0)

实现pop over delegate

/* Called on the delegate when the popover controller will dismiss the popover. Return NO to prevent the dismissal of the view.
 */
- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController;

答案 3 :(得分:0)

func popoverShouldClose(_ popover: NSPopover) -> Bool { 返回假 }

答案 4 :(得分:-3)

尝试这个你不想解雇popUp的地方: -

[popOverController dismissPopoverAnimated:NO];

希望这会有所帮助:)