QLPreviewController 在其上显示模态视图控制器后失去联系

Posted

技术标签:

【中文标题】QLPreviewController 在其上显示模态视图控制器后失去联系【英文标题】:QLPreviewController loses touch after presenting a modal view controller over it 【发布时间】:2015-03-04 01:48:41 【问题描述】:

在 iPad 主从应用程序中(主是 UITableViewController,细节是 QLPreviewController),每当我以模态方式然后将其关闭时,QLPreviewController 就会停止接收触摸事件或至少对它们做出反应。因此,即使在选择并显示了另一个图像/文档之后,也无法放大或缩小或“弹跳”当前显示的图像/文档。

请记住,在模态显示视图控制器之前,一切都会按预期工作,并且可以放大/缩小。

有人知道这个奇怪问题的可能解决方案吗?

编辑:补充说这发生在关闭模态显示的视图控制器之后。

编辑2:如果演示风格是UIModalPresentationFormSheet,则不会出现问题。它似乎只发生在UIModalPresentationFullScreen

【问题讨论】:

【参考方案1】:

虽然不是解决此问题的方法,但一种解决方法是将视图控制器呈现为 UIModalPresentationFormSheet 而不是全屏。

【讨论】:

【参考方案2】:

是的,这是预期的行为。

当 ViewController 以模态方式呈现时(我假设您正在表单中呈现某些内容?),它会阻止其他视图控制器接收触摸事件。

另一种选择是查看child view controllers 作为替代;但同样,他们的触摸事件将优先于下面的任何内容。

【讨论】:

您是否有预期的特定行为? 我忘了补充一点,这是在视图控制器被关闭后发生的。 (我正在全屏展示它,但我会尝试将它展示为工作表,看看是否有什么不同。) 如果我以 UIModalPresentationFormSheet 样式呈现视图控制器,则问题不再发生。

以上是关于QLPreviewController 在其上显示模态视图控制器后失去联系的主要内容,如果未能解决你的问题,请参考以下文章

BackBarButtonItem 在其上显示导航栏标题,并在每次翻页时更新

活动(主题对话框)在其上的来电屏幕阻塞

如何创建空/空白 UIImage 或 CGImage 并在其上操作像素(Xcode)?

如何在子视图中使用 QLPreviewController 显示页面洗涤器

iOS应用程序中的空白QLPreviewController

UITableViewController 并在其上推送 DetailViewController