我每次都会从已保存的核心数据动态生成PDF,而不是以NSData
self.pdfData
的形式存储在文档目录中,而是以UIWebView
呈现。我没有使用UIActivityController
来共享PDF,而是希望使用UIDocumentInteractionController
来获得全方位的共享选项。问题是这似乎只适用于文档目录中保存的PDF。
NSURL *PDFUrl = [[NSBundle mainBundle] URLForResource:@"sample" withExtension:@"pdf"];
我宁愿不把它保存到文件目录然后删除它,我希望有更优雅的东西。我尝试使用UIWebview
直接从PDF的self.webView.request.mainDocumentURL
获取网址,但这会返回about:blank
NSURL *PDFUrl = [[NSBundle mainBundle] URLForResource:@"sample" withExtension:@"pdf"]; <-----
if (PDFUrl) {
DebugLog(@"Loading document");
self.documentController = [UIDocumentInteractionController interactionControllerWithURL:PDFUrl];
[self.documentController setDelegate:self];
[self.documentController presentPreviewAnimated:YES];
}
答案 0 :(得分:1)
UIDocumentInteractionController
仅适用于本地文件系统上的文件。这意味着您必须先将PDF保存到文件中,然后才能使用UIDocumentInteractionController
。
将PDF数据写入缓存文件夹(NSCachesDirectory
)中的文件,获取其文件URL,使用UIDocumentInteractionController
,然后在完成时删除该文件。
或使用UIActivityViewController
并传递PDF的NSData
作为活动项目。