从右向左滑动时未调用 UISplitViewControllerDelegate/UIPopoverDelegate 方法

Posted

技术标签:

【中文标题】从右向左滑动时未调用 UISplitViewControllerDelegate/UIPopoverDelegate 方法【英文标题】:UISplitViewControllerDelegate/UIPopoverDelegate methods not called on right-to-left swipe 【发布时间】:2013-10-16 22:13:01 【问题描述】:

我有一个 UISplitViewController 子类,它实现了 UISplitViewControllerDelegateUIPopoverController 委托挂钩,以便在通过以下方式呈现或关闭主窗格弹出框时收到通知:

    splitViewController:popoverController:willPresentViewController: popoverControllerShouldDismissPopover:

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

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

什么有效:

在主窗格可见的情况下,当我在主窗格外点击时,should dismiss 钩子被调用 在隐藏主窗格的情况下,当我点击导航栏按钮以显示主窗格时,将显示挂钩被调用 在主窗格隐藏的情况下,当我从左向右滑动以显示主窗格时,将显示钩子被调用

什么不起作用:

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

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

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

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

【问题讨论】:

您确定这是受支持的手势吗?我只知道从左到右打开弹出框。 我遇到了同样的问题。你有没有在这方面取得进展?提前致谢。 【参考方案1】:

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

UISplitViewControllerDelegate splitViewController:willHideViewController:withBarButtonItem:forPopoverController:

【讨论】:

以上是关于从右向左滑动时未调用 UISplitViewControllerDelegate/UIPopoverDelegate 方法的主要内容,如果未能解决你的问题,请参考以下文章

使用 animate() 从右向左滑动 div

jQuery从右向左滑动

如何使div从右向左滑动

在Xamarin android中从右向左滑动抽屉

从右向左滑动?

我的应用程序使用片段,但我需要从左到右从右向左滑动