解雇时获取UIPopoverPresentationController事件

时间:2016-07-08 11:19:57

标签: ios objective-c uipopovercontroller dismiss

我有viewControllerA,我在这里展示显示静态数据的UIPopoverPresentationcontroller。 有关详细信息,请参阅以下代码。

- (void)openPopupScreen:(id)sender {

    PopupViewController *popupVC = [self.storyboard instantiateViewControllerWithIdentifier:@"popupViewController"];
    popupVC.delegate = self;
    popupVC.preferredContentSize = CGSizeMake(220.0f, 230.0f);
    popupVC.modalPresentationStyle = UIModalPresentationPopover;
    _popupView = popupVC.popoverPresentationController;
    self.popupView.delegate = self;
    self.popupView.sourceView = self.view;
    self.popupView.backgroundColor = [UIColor whiteColor];
    CGRect rect = CGRectMake(0.0f, 0.0f, 220.0f, 230.0f);           
    self.popupView.sourceRect = rect;
    [self presentViewController:popupVC animated:YES completion:nil];
}

由于我没有编写代码来解雇" popup"查看,因为当我简单地触摸视图时它会被自动关闭。

所以我的问题是当弹出窗口被解除时我需要这个事件。

提前致谢。

3 个答案:

答案 0 :(得分:3)

由于您已将UIPopoverPresentationControllerDelegate的代理人员应用于以下声明。

self.popupView.delegate = self;

UIPopoverPresentationControllerDelegate方法列表。

1)当弹出控制器解除弹出窗口时,在委托上调用。返回NO以防止 //驳回观点。

- (BOOL)popoverPresentationControllerShouldDismissPopover:(UIPopoverPresentationController *)popoverPresentationController;

2)当用户采取行动解除弹出窗口时,在委托上调用。当弹出窗口以编程方式进行调整时,不会调用此方法。

- (void)popoverPresentationControllerDidDismissPopover:(UIPopoverPresentationController *)popoverPresentationController;

3)通知代表即将出现弹出窗口。

- (void)prepareForPopoverPresentation:(UIPopoverPresentationController *)popoverPresentationController;

有关详细信息,请查看Apple Developer link

供您参考时popoverPresentationControllerDidDismissPopover会在您关闭弹出窗口时调用。

希望它适合你。

答案 1 :(得分:0)

专门针对UIPopoverPresentationControllerDelegate方法查看popoverPresentationControllerDidDismissPopover

答案 2 :(得分:0)

尝试UIPopoverControllerDelegate方法

create promise
setting up
setup done
reject: nope
Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode.
Unhandled Promise rejection: nope ; Zone: <root> ; Task: Promise.then ; Value: nope
Error: Uncaught (in promise): nope(…)