我的应用程序出现问题。获得一些统计数据后,我生成一个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对象。但我找不到解决方案。
以前有人发现过这个问题吗?
非常感谢。
你试过UIDocumentInteractionController的'presentOptionsMenuFromBarButtonItem'吗? - 我认为UIActivityViewController的'initWithActivityItems'参数也接受数组中的NSURL项,这可能会有所帮助。 – 2013-04-22 19:04:08
感谢您的回复,但是如果您在网址中添加了网址,它只会显示通过邮件发送并在Twitter上发布的选项,如果您点击邮件发送,则会打开包含网址的文本的邮件编辑器,但没有附加文件.. – diegomen 2013-04-22 19:41:53
好吧,这只是一个想法!那么presentOptionsMenuFromBarButtonItem呢? – 2013-04-22 19:43:29