单击外部弹出窗口时如何防止UIPopoverPresentationController被解雇?

Kur*_*son 6 objective-c uipopovercontroller ios

在我的通用iOS 8应用程序中,我使用UIPopoverPresentationController如下所示的使用使用弹出窗口prepareForSegue:

FavoriteNameViewController *nameVC = segue.destinationViewController;
UIPopoverPresentationController *popPC = nameVC.popoverPresentationController;
popPC.delegate = self;
Run Code Online (Sandbox Code Playgroud)

并使用此委托方法.

- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller {
return UIModalPresentationNone;
}
Run Code Online (Sandbox Code Playgroud)

在这种特殊情况下,我提出的视图控制器看起来像一个警报,但事实并非如此.

在此输入图像描述

现在我的问题是用户可以点击此弹出窗口之外的内容而被解雇.这没有真正的问题,除了警报不是如何工作,我希望这可以模拟警报.

我看到UIPopoverControllerDelegate有一个方法叫popoverControllerShouldDismissPopover:,但UIPopoverPresentationControllerDelegate没有那个方法,我相信我需要使用后者.

mat*_*att 18

您需要将弹出控制器设置passthroughViewsnil和视图控制器设置modalInPopover为YES.