关闭时获取 UIPopoverPresentationController 事件
Get event of UIPopoverPresentationController when 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" 视图的代码,因为当我简单地触摸视图时它会自动关闭。
所以我的问题是我需要弹出窗口关闭时的事件。
提前致谢。
具体看UIPopoverPresentationControllerDelegate
方法popoverPresentationControllerDidDismissPopover
。
尝试 UIPopoverController 委托方法
- (void) popoverControllerDidDismissPopover:(UIPopoverController *) popoverController {
//do stuff here...
}
因为您已经使用以下语句应用了 UIPopoverPresentationControllerDelegate
的委托。
self.popupView.delegate = self;
UIPopoverPresentationControllerDelegate 方法列表。
1) 当弹出框控制器关闭弹出框时调用委托。 Return 否,以防止
// 关闭视图。
- (BOOL)popoverPresentationControllerShouldDismissPopover:(UIPopoverPresentationController *)popoverPresentationController;
2) 当用户采取操作关闭弹出窗口时调用委托。当以编程方式关闭弹出窗口时,不会调用此方法。
- (void)popoverPresentationControllerDidDismissPopover:(UIPopoverPresentationController *)popoverPresentationController;
3) 通知代理即将显示弹出窗口。
- (void)prepareForPopoverPresentation:(UIPopoverPresentationController *)popoverPresentationController;
更多信息请查看Apple Developer link。
供您参考 popoverPresentationControllerDidDismissPopover
将在您关闭弹出窗口时调用。
希望对你有用。
我有 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" 视图的代码,因为当我简单地触摸视图时它会自动关闭。
所以我的问题是我需要弹出窗口关闭时的事件。
提前致谢。
具体看UIPopoverPresentationControllerDelegate
方法popoverPresentationControllerDidDismissPopover
。
尝试 UIPopoverController 委托方法
- (void) popoverControllerDidDismissPopover:(UIPopoverController *) popoverController {
//do stuff here...
}
因为您已经使用以下语句应用了 UIPopoverPresentationControllerDelegate
的委托。
self.popupView.delegate = self;
UIPopoverPresentationControllerDelegate 方法列表。
1) 当弹出框控制器关闭弹出框时调用委托。 Return 否,以防止 // 关闭视图。
- (BOOL)popoverPresentationControllerShouldDismissPopover:(UIPopoverPresentationController *)popoverPresentationController;
2) 当用户采取操作关闭弹出窗口时调用委托。当以编程方式关闭弹出窗口时,不会调用此方法。
- (void)popoverPresentationControllerDidDismissPopover:(UIPopoverPresentationController *)popoverPresentationController;
3) 通知代理即将显示弹出窗口。
- (void)prepareForPopoverPresentation:(UIPopoverPresentationController *)popoverPresentationController;
更多信息请查看Apple Developer link。
供您参考 popoverPresentationControllerDidDismissPopover
将在您关闭弹出窗口时调用。
希望对你有用。