在自定义弹出框控制器中使用 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 设备上显示弹出框。

【讨论】:

@Shas UIPopoverController 是 Apple 控制器,iPad 上也有预期。看看私有方法:github.com/nst/ios-Runtime-Headers/blob/master/Frameworks/… 注意它实现了_setPopoverController: - 这意味着,Apple 有钩子来支持弹出控制器。

以上是关于在自定义弹出框控制器中使用 UIReferenceLibraryViewController的主要内容,如果未能解决你的问题,请参考以下文章

向弹出框的 uibarbuttonitem 添加自定义视图

在自定义视图上显示弹出菜单时不要关闭键盘

如何在 UIPageViewController 中使用弹出框控制器?

更改弹出框标题的字体类型

从弹出框/弹出框中定义的数据填充自定义 tableView 单元格中的字段

angularjs 弹出框 $modal 参数(转)