我有一个视图控制器B,它由另一个视图控制器A弹出。视图控制器B符合协议UIPopoverPresentationControllerDelegate
(在其头文件中定义)并实现此方法。
- (void)popoverPresentationControllerDidDismissPopover:(UIPopoverPresentationController *)popoverPresentationController
{
DDLogDebug(@"Clicked outside");
}
在视图控制器A中,我初始化视图控制器B,将其modalPresentationStyle设置为UIModalPresentationPopover
并使用方法presentViewController:animated:completion:
显示它。
当我点击旁边的弹出窗口时,我没有收到任何通知。为什么视图控制器B没有收到此通知?
当我使视图控制器A符合UIPopoverPresentationControllerDelegate
并在那里实现该方法时,会发生同样的事情。
我正在使用Objective C和iOS 9的目标。
修改
感谢下面的评论,我发现了错误。我忘了设置代表。我现在将视图控制器A中的委托设置为自身,让A从视图控制器B中检索所需的数据。
datePickerContentViewController.modalPresentationStyle = UIModalPresentationPopover;
UIPopoverPresentationController *popoverController = [datePickerContentViewController popoverPresentationController];
popoverController.delegate = self;
[self.parentViewController presentViewController:datePickerContentViewController animated:YES completion:nil];