3

我有一个UISplitViewController子类,它实现UISplitViewControllerDelegateUIPopoverController委托钩子,当主窗格弹出窗口通过以下方式呈现或关闭时得到通知:

  1. splitViewController:popoverController:willPresentViewController:
  2. popoverControllerShouldDismissPopover:

此拆分视图控制器已presentsWithGesture设置为YES.

调用 1. 时,我确保将弹出框的委托(方法调用中的第二个参数)设置为self.

什么有效:

  • 在主窗格可见的情况下,当我在主窗格外部点击时,将调用应该解除挂钩
  • 在隐藏主窗格的情况下,当我点击导航栏按钮以显示主窗格时,将调用将显示挂钩
  • 隐藏主窗格后,当我从左向右滑动以显示主窗格时,将调用将显示挂钩

什么不起作用:

  • 在主窗格可见的情况下,当我从右向左滑动以隐藏主窗格时,不会调用任何委托挂钩

我很确定所有代表都已正确设置。

在调试器中,我获取了 popover 控制器的内存引用(它始终相同),从右向左滑动后,我确认它的委托仍然正确设置——只是没有调用方法。

设置有什么问题还是这是 UIKit 错误/疏忽?

4

1 回答 1

0

经过一番挖掘后,我发现在外面敲击(解雇)和滑开(隐藏)之间存在区别。这就是您需要的,也是我现在用来检测“滑开”的东西: