2016-08-14 34 views
0

我在我的ios9应用程序中创建了一个pdf,并希望能够使用UIActivityViewController将它保存到iBooks。不幸的是,代码我目前使用的(假设所有选项使用:如何使用UIActivityViewController将在我的应用程序中创建的PDF文件保存到iBooks?

applicationActivities: nil 

什么我可以对文件做会显示)只有“消息”和“邮件”项中显示。我不排除任何活动,所以假设UIActivityTypeOpenInIBooks应该显示得很好。但是,我无法获取iBook或其他任何内容,只能显示消息和邮件。 (为了将来的参考,我将把这个结果作为结果A)有没有另外一个推荐的方法来做到这一点? 我正在使用的代码如下:

// creating pdf image from the UIView 
    let pdf = self.getPDFImageFromDrawingView() 

    let activityViewController = UIActivityViewController(activityItems: [pdf], applicationActivities: nil) //should include any and all available activities right? 

    self.presentViewController(activityViewController, animated: true, completion: nil) 

有什么明显的,我忘了?如何将iBooks作为保存文件的选项?

编辑:

在调试这个问题,我已经保存了UIView内容为JPG和为PDF文件。当我只使用所产生的UIImage这样:

(成果B)

let image = self.getUIImageFromDrawingView() // generate a UIImage object 
    let activityViewController = UIActivityViewController(activityItems: [image], applicationActivities: nil) 
    self.presentViewController(activityViewController, animated: true, completion: nil) 

所有可能的选项显示,包括开在iBooks的(是的,但是我需要多少,更高分辨率的图像!通过创建一个PDF产生)

当我添加BOTH图像和PDF到activityItems(如例如:

(成果C)

let image = self.getUIImageFromDrawingView() // UIImage 
let pdf = self.getPDFImageFromDrawingView() //produces an NSData object 
let activityViewController = UIActivityViewController(activityItems: [image, pdf], applicationActivities:nil) 

),我得到更多的选择那么原来的邮件和消息选项 - 像FB,Pinterest的和Evernote的 - 但没有的iBooks。

最后,当我回到只使用PDF时,我和以前一样 - 只有邮件和消息。什么可能导致这个? (顺便说一句,如果不是无用的话,这很有趣 - 在使用JPG和PDF时,以及使用Mail测试应用程序活动时 - 我会按照预期生成一个jpg和pdf的电子邮件。

什么可能导致这种奇怪的行为?

编辑2:

我认为,可能是问题是,我使用的NSData来发送PDF。所以,我将这个对象保存为一个NSURL并使用它。我得到了与上述(C)相同的结果 - 更多的选项,然后只是邮件和邮件,但没有iBooks。这个结果与使用UIImage + NSURL组合和单独使用NSURL一起使用。当我单独使用UIImage时,与之前的情况一样,我有许多选项,包括iBooks。

回答

0

我试过这种方式,并且无法使它与UIActivityController一起工作。 然而,它的工作就像一个魅力当我用UIDocumentInteractionController:

let pdfData = self.getPDFasNSData() // get the NSData object 
    let fileURL = self.getCurrentPDFURLName() //get the NSURL 

    self.docController = UIDocumentInteractionController(URL: fileURL) 

    if (fileURL != nil) 
    { 
     pdfData.writeToURL(fileURL, atomically: true);   
     self.docController.presentOptionsMenuFromBarButtonItem(self.organizeBarButton, animated: true) 
    } 

现在的“开放中的iBooks”选项出现。

相关问题