从右向左滑动时未调用 UISplitViewControllerDelegate/UIPopoverDelegate 方法
Posted
技术标签:
【中文标题】从右向左滑动时未调用 UISplitViewControllerDelegate/UIPopoverDelegate 方法【英文标题】:UISplitViewControllerDelegate/UIPopoverDelegate methods not called on right-to-left swipe 【发布时间】:2013-10-16 22:13:01 【问题描述】:我有一个 UISplitViewController
子类,它实现了 UISplitViewControllerDelegate
和 UIPopoverController
委托挂钩,以便在通过以下方式呈现或关闭主窗格弹出框时收到通知:
splitViewController:popoverController:willPresentViewController:
popoverControllerShouldDismissPopover:
此拆分视图控制器将presentsWithGesture
设置为YES
。
当调用 1. 时,我确保将弹出框的委托(方法调用中的第二个参数)设置为 self
。
什么有效:
在主窗格可见的情况下,当我在主窗格外点击时,should dismiss 钩子被调用 在隐藏主窗格的情况下,当我点击导航栏按钮以显示主窗格时,将显示挂钩被调用 在主窗格隐藏的情况下,当我从左向右滑动以显示主窗格时,将显示钩子被调用什么不起作用:
在主窗格可见的情况下,当我从右向左滑动以隐藏主窗格时,不会调用任何委托挂钩我很确定所有代表都设置正确。
在调试器中,我获取了 popover 控制器的内存引用(始终相同),从右向左滑动后,我确认它的委托仍然正确设置——只是没有调用方法。
设置有什么问题还是这是 UIKit 错误/疏忽?
【问题讨论】:
您确定这是受支持的手势吗?我只知道从左到右打开弹出框。 我遇到了同样的问题。你有没有在这方面取得进展?提前致谢。 【参考方案1】:经过一番挖掘后,我发现在外面敲击(关闭)和滑开(隐藏)是有区别的。这就是你需要的,也是我现在用来检测“滑开”的东西:
UISplitViewControllerDelegate splitViewController:willHideViewController:withBarButtonItem:forPopoverController:
【讨论】:
以上是关于从右向左滑动时未调用 UISplitViewControllerDelegate/UIPopoverDelegate 方法的主要内容,如果未能解决你的问题,请参考以下文章