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

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

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

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

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

什么有效:

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

什么不起作用:

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

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

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

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

【问题讨论】:

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

标签: ios objective-c uisplitviewcontroller uipopovercontroller


【解决方案1】:

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

UISplitViewControllerDelegate splitViewController:willHideViewController:withBarButtonItem:forPopoverController:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 2015-08-25
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多