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

时间:2015-07-08 17:07:58

标签: ios objective-c uipopovercontroller

在我的通用iOS 8应用中,我使用UIPopoverPresentationController使用prepareForSegue来呈现一个弹出窗口,如下所示FavoriteNameViewController *nameVC = segue.destinationViewController; UIPopoverPresentationController *popPC = nameVC.popoverPresentationController; popPC.delegate = self;

- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller {
return UIModalPresentationNone;
}

使用此委托方法。

UIPopoverControllerDelegate

在这种特殊情况下,我提出了一个看起来像警报的视图控制器,但不是。

enter image description here

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

我看到popoverControllerShouldDismissPopover:有一个名为UIPopoverPresentationControllerDelegate的方法,但@user.create_reset_digest没有这种方法,我相信我需要使用后者。

2 个答案:

答案 0 :(得分:18)

您需要将弹出框控制器的passthroughViews设置为nil,将视图控制器的modalInPopover设置为YES。

答案 1 :(得分:-1)

在您的视图中尝试以下内容

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
    return YES;
}