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

时间:2011-04-05 09:05:19

标签: ios ipad uipopovercontroller

我有一个带有“取消”按钮的模态视图(按钮取消模态)。 在模态中,我推了一个小的UIPopover。

我想要实现的目标是:

当UIPopover可见时,如果uset触及“取消”,它将同时执行:

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

有办法吗?

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

谢谢:)

1 个答案:

答案 0 :(得分:8)

在展示popover之前,将Cancel按钮添加到popover的passthroughViews数组中:

popoverController.passthroughViews = [NSArray arrayWithObject:cancelButton];

这会让“取消”按钮在显示弹出窗口时响应触摸,而不会自动解除弹出窗口。

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

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