2013-04-22 16 views
6

我的应用程序出现问题。获得一些统计数据后,我生成一个PDF文件,并且我想要显示一个UIActivityViewController,其中包含“在iBooks中打开”和“通过邮件发送”选项(其他人喜欢“在Dropbox中打开”会很棒)。UIActivityViewController未显示“在iBooks中打开”选项

那么事情是,尝试使用UIActivityViewController之前,我是用UIDocumentInteractionController,用下面的代码:

self.docController = [UIDocumentInteractionController interactionControllerWithURL:url]; 
self.docController.delegate = self; 
[_docController presentOpenInMenuFromRect:_openInIBooksButton.bounds inView:self.openInIBooksButton animated:YES]; 

其中URL是像/Documents/../statistics.pdf的路径。它的工作原理是,它显示了一个弹出窗口,其按钮在iBooks中打开并在Dropbox中打开,但不是通过邮件发送。现在我用下面的代码改变它:

NSArray* itemsToShare = [NSArray arrayWithObjects:pdfData, nil]; 
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil]; 
activityVC.excludedActivityTypes = @[UIActivityTypeCopyToPasteboard]; //or whichever you don't need 
[self presentViewController:activityVC animated:YES completion:nil]; 

其中pdfData是一个NSData对象。它也起作用,但现在它显示通过电子邮件发送它的选项,但不显示iBooks选项。我疯了,因为我没有找到这种行为的原因,我需要两个选项,iBooks和邮件。

我不知道它是否与UIDocumentInteractionController有一个以.pdf结尾的路径有关,而UIActivityViewController只有一个NSData对象。但我找不到解决方案。

以前有人发现过这个问题吗?

非常感谢。

+0

你试过UIDocumentInteractionController的'presentOptionsMenuFromBarButtonItem'吗? - 我认为UIActivityViewController的'initWithActivityItems'参数也接受数组中的NSURL项,这可能会有所帮助。 – 2013-04-22 19:04:08

+0

感谢您的回复,但是如果您在网址中添加了网址,它只会显示通过邮件发送并在Twitter上发布的选项,如果您点击邮件发送,则会打开包含网址的文本的邮件编辑器,但没有附加文件.. – diegomen 2013-04-22 19:41:53

+0

好吧,这只是一个想法!那么presentOptionsMenuFromBarButtonItem呢? – 2013-04-22 19:43:29

回答

10

当您使用presentOpenInMenuFromRect:inView:animated:时,您只会得到可以使用给定文件的应用程序列表。

你想要使用的是presentOptionsMenuFromRect:inView:animated:它给你你正在寻找的选项。

+0

非常感谢您,但是如果您在邮件中打开附加的PDF,您可以预览它并点击按钮共享,弹出窗口会显示出来,并且它具有在iBooks中打开并通过邮件发送的选项,这怎么可能? – diegomen 2013-04-22 19:37:15

+0

而不是使用'presentOpenInMenuFromRect:'方法,使用'UIDocumentInteractionController'的presentOpenInMenuFromRect:'方法。 – rmaddy 2013-04-22 20:14:40

+0

对不起,你说过同样的话......?关于用什么方法来替换presentOpenInMenuFromRect:? – diegomen 2013-04-24 16:56:29