0

我有一个视图控制器 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];
4

0 回答 0