点按时不要关闭UIPopoverController

Jes*_*her 15 objective-c uipopovercontroller ios

经过一番搜索,我无法找到对许多人有用的东西的答案.

当用户点击外面的某个地方时,有UIPopoverController 没有办法让解雇?我希望用户必须使用取消按钮(是的,我意识到这可能会以某种方式违反Apple的HIG,但这是一种罕见的情况,从用户体验的角度来看是有意义的).

谢谢你的帮助.

jls*_*ker 26

只需设置正在显示的modalInPopover属性即可.UIViewControllerUIPopoverController

popover = [[UIPopoverController alloc] initWithContentViewController:content];
content.modalInPopover = YES;
[popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
Run Code Online (Sandbox Code Playgroud)

请注意,从iOS5开始,您必须设置modalInPopover内部-viewDidAppear.


Joe*_*asq 20

您可以对点击发生的位置进行点击测试,并在弹出窗口的委托中返回NO. - (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController