将触摸传递给UIPopoverController的底层按钮

Sol*_*olo 3 ipad uipopovercontroller ios

我有一个模式视图,有"取消"按钮(按钮取消模态).在模态中,我推了一个小的UIPopover.

我想要实现的是:

当UIPopover可见时,如果uset触及"取消",它将同时执行以下操作:

  • 隐藏popover(现在正在发生,因为这是弹出窗口外的点击)
  • 隐藏模态 - 就像用户触摸"取消"而没有弹出窗口一样

有办法吗?

UIPopoverControllerDelegate没有提供任何帮助(或者我没有看到:))

谢谢 :)

小智 8

在呈现弹出框之前,将"取消"按钮添加到popover的passthroughViews数组中:

popoverController.passthroughViews = [NSArray arrayWithObject:cancelButton];
Run Code Online (Sandbox Code Playgroud)

这将使"取消"按钮在显示弹出窗口时响应触摸,而不会自动解除弹出窗口.

然后在"取消"按钮的操作方法中,在取消dismissPopoverAnimated:模态视图之前调用弹出窗口.

你需要在ivar(例如popoverController)中保留对popover的引用来执行此操作.