在自定义弹出框控制器中使用 UIReferenceLibraryViewController
Posted
技术标签:
【中文标题】在自定义弹出框控制器中使用 UIReferenceLibraryViewController【英文标题】:using UIReferenceLibraryViewController in custom popover controller 【发布时间】:2014-02-08 22:29:48 【问题描述】:我正在为 iPhone 使用自定义弹出框控制器 (WYPopoverController
) 并在其中显示 UIReferenceLibraryViewController
。视图确实完美,但UIReferenceLibraryViewController
在其导航栏上有“完成”按钮,当我单击它时,它没有响应。虽然如果我在弹出框之外单击,那么弹出框就会消失。我只是想在按下“完成”按钮时消失弹出框。
请注意,如果我在 iPad 上使用UIPopoverController
,那么UIReferenceLibraryViewController
中的“完成”按钮会响应。不确定我在自定义实现中缺少什么。
非常感谢任何帮助。
【问题讨论】:
【参考方案1】:在我看来,这个问题似乎是 Apple 糟糕设计的一部分,其中参考库控制器会自行关闭,而不是提供通知您关闭它的委托方法。首先,打开 Apple 的错误报告并发布错误报告编号,以便人们可以复制它。
如果没有更好的选择,我建议用您自己的替换控制器的导航项的栏按钮项,该按钮会通知您用户的点击,并且您会正确地关闭控制器。这是一个部分解决方案,因为参考库控制器是一个复杂的案例,它在内部维护一个导航堆栈。您可能需要深入查看视图控制器的父/子层次结构才能找到所有案例。
同时考虑更改您的设计,以模态方式呈现视图,而不是在电话/Pod 设备上显示弹出框。
【讨论】:
@ShasUIPopoverController
是 Apple 控制器,iPad 上也有预期。看看私有方法:github.com/nst/ios-Runtime-Headers/blob/master/Frameworks/… 注意它实现了_setPopoverController:
- 这意味着,Apple 有钩子来支持弹出控制器。以上是关于在自定义弹出框控制器中使用 UIReferenceLibraryViewController的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UIPageViewController 中使用弹出框控制器?