我有我的 UIPopoverController 与 self 作为委托:当我在弹出框控制器外部点击时收到呼叫,但是当我点击内部时我也想关闭,所以我使用 -dismissPopoverAnimated: 但在这种情况下不调用委托。这是正常的吗?这是一个错误还是我做错了什么?
newDocPopoverController = [[UIPopoverController alloc] initWithContentViewController:vc];
[newDocPopoverController setPopoverContentSize:CGSizeMake(240, 44*4)];
[newDocPopoverController presentPopoverFromBarButtonItem:sender
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
[newDocPopoverController setDelegate:self];
更新:
哦,不管问题的根源(无论是错误还是这是预期的行为)自己调用委托都可以解决问题:)
当 contentViewController 的视图被触摸时,我将调用父 UIPopoverController 的委托。
if ([parentPopoverController.delegate popoverControllerShouldDismissPopover:parentPopoverController]){
[parentPopoverController dismissPopoverAnimated:YES];
[parentPopoverController.delegate popoverControllerDidDismissPopover:parentPopoverController];
}r];