【问题标题】:why would a local PDF fail to draw in a UIDocumentInteractionController on just one device?为什么本地 PDF 无法仅在一台设备上绘制 UIDocumentInteractionController?
【发布时间】:2016-05-29 08:14:40
【问题描述】:

我们有一个应用程序,其捆绑包中包含一堆 PDF。当用户点击按钮或选择表格单元格时,我们希望在 UIDocumentInteractionController 中显示相应的 PDF。

这在我的机器和大多数测试机器上都很好用,但我有一个用户在他的 iPhone 上看不到预览。他给我发了一个屏幕截图;控制器已将其视图推送到导航堆栈上,并且在导航栏中有一个有效的“操作”菜单,在正确的文件名旁边。但是应该显示 PDF 本身的大空间只是深灰色。

这是在运行 6.0.1 的新 iPhone 上;在他的 iPad 上,同样运行 6.0.1,它运行良好;在我运行 5.0.1 的 iPhone 4S 上,它运行良好。 “工作正常”意味着它推送完全相同的周围细节,包括文件名和操作菜单,但不是一个大的灰色空间,而是 PDF 的工作预览。

我的视图控制器层次结构由一个选项卡控制器组成,每个选项卡内都有一个导航控制器。同样的问题存在于导航堆栈深处的几个级别的表视图中,或者来自导航堆栈顶层的 HTML 视图中。呈现控制器的代码如下所示:

        self.DIC = [UIDocumentInteractionController interactionControllerWithURL:url];
        self.DIC.delegate = self;
        [self.DIC presentPreviewAnimated:YES];

唯一实现的委托方法是:

- (UIViewController *) documentInteractionControllerViewControllerForPreview: (UIDocumentInteractionController *) controller {
    if (curTabViewController) return curTabViewController;
    return tabCtrl;
}

这将返回我在 tabBarController:didSelectViewController 中设置的当前导航视图控制器。我可以说这是有效的,因为 DIC 已将其视图推送到导航堆栈上,而不是模态弹出。

所以。知道为什么 UIDocumentInteractionController 无法在某些设备上绘制预览,而在其他设备上则不行吗?

更新:我已成功设置此设备以进行调试。日志文件中出现的唯一线索就是这个错误:

Cannot find preview item for loaded proxy: <QLPreviewItemProxy: 0x1fd67820> - 
file://localhost/var/mobile/Applications/22DDE4EB-6FB6-4364-87D6-E3680E1E1A9B
/agilentJAL.app/BuiltInFiles/help/Getting_Started.pdf

我搜索了互联网,找到了this question,但它似乎不适用于我的情况。我仔细检查了路径,它看起来是正确的(并且 DIC 菜单可以成功地通过电子邮件发送文档,在 DropBox 中打开它等)知道还有什么可能导致这个错误吗?

【问题讨论】:

  • 设备可用内存? (我遇到了几个应用程序在我真正重新启动设备之前运行不佳......尽管这些应用程序相当大。)
  • 重启设备没有帮助。
  • 这里有一件有趣的事情...没有错误,并显示预览。但是当然它会以模态方式弹出,而不是与导航堆栈很好地配合。也许我不得不接受这一点,但它似乎在除此之外的所有其他测试设备上都可以正常工作,这让我很烦恼。

标签: ios pdf render


【解决方案1】:

尝试访问导航控制器而不是标签栏。这为我解决了这个问题。在documentInteractionControllerViewControllerForPreview:​

if let navigationController = self.navigationController {
    return navigationController
} else {
    return self
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    相关资源
    最近更新 更多