UIDocumentInteractionController显示空白pdf

我试图使用UIDocumentInteractionController presentPreviewAnimated方法在iOS设备上显示PDF,但它始终显示一个空白文档。 我认为这可能与字符编码有关,但我不确定。 如果我使用一个UIWebView,我可以得到PDF显示,而不是与文档交互控制器。

//更新9/18/14现在正在与Xcode 6的GM版本合作。

/ /更新8/22/14

奇怪的是,从DocumentInteractionController,如果我点击右上angular的“打开”图标,并select类似iBooks,PDF显示正确。 看起来好像它只是不想在屏幕上显示它的预览。

这是我的代码(在Swift中):

// data is coming in as NSISOLatin1StringEncoding func displayPdfInUIDocumentInteractionController(data: NSData) { let fileName = NSTemporaryDirectory().stringByAppendingPathComponent("myFile.pdf") let url: NSURL! = NSURL(fileURLWithPath: fileName) // this does not seem to make a difference // let pdfString = NSString(data: data, encoding: NSISOLatin1StringEncoding) // pdfString.writeToURL(url!, atomically: true, encoding: NSISOLatin1StringEncoding, error: nil) data.writeToURL(url, atomically: true) if url != nil { let docController = UIDocumentInteractionController(URL: url) docController.UTI = "com.adobe.pdf" docController.delegate = self docController.presentPreviewAnimated(true) } } 

此代码确实显示PDF:

 // data is coming in as NSISOLatin1StringEncoding func displayPdfInUIWebView(data: NSData) { let rect = UIScreen.mainScreen().bounds let screenSize = rect.size let webView = UIWebView(frame: CGRectMake(0,0,screenSize.width,screenSize.height)) webView.autoresizesSubviews = true webView.autoresizingMask = (UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleWidth) webView.loadData(data, MIMETYype: "application/pdf", textEncodingName: "ISO-8859-1", baseUrl: nil) self.view.addSubview(webView) } 

第一个function不应该有什么原因吗? 它不会出错,只是显示一个空白页面。

我没有使用Swift,但是直接使用Objective-C的问题基本上是一样的。 在iOS8之前,我的UIDocumentInteractionController显示了几乎所有的文件types,包括PDF。 但在iOS8中,PDF文件将不再显示给我。

我是这样创build的:

 [[[UIDocumentInteractionController alloc] init] autorelease] 

我改变了电话来创build它像这样:

 [UIDocumentInteractionController interactionControllerWithURL:myUrl] 

现在我的PDF文件再次显示(其他人似乎也没关系)。

这与Xcode的GM发行版一起工作。 猜猜这只是一个错误。