Objective c UIActivityViewController不显示";“在iBooks中打开”;选项

Objective c UIActivityViewController不显示";“在iBooks中打开”;选项,objective-c,email,pdf,ibooks,uiactivityviewcontroller,Objective C,Email,Pdf,Ibooks,Uiactivityviewcontroller,我的应用程序有问题。在获得一些统计信息后,我生成了一个PDF文件,我想显示一个UIActivityViewController,主要有“在iBooks中打开”和“通过邮件发送”两个选项(其他选项如“在Dropbox中打开”会更好) 问题是,在尝试使用UIActivityViewController之前,我使用的是UIDocumentInteractionController,代码如下: self.docController = [UIDocumentInteractionController i

我的应用程序有问题。在获得一些统计信息后,我生成了一个PDF文件,我想显示一个UIActivityViewController,主要有“在iBooks中打开”和“通过邮件发送”两个选项(其他选项如“在Dropbox中打开”会更好)

问题是,在尝试使用UIActivityViewController之前,我使用的是UIDocumentInteractionController,代码如下:

self.docController = [UIDocumentInteractionController interactionControllerWithURL:url];
self.docController.delegate = self;
[_docController presentOpenInMenuFromRect:_openInIBooksButton.bounds inView:self.openInIBooksButton animated:YES];
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];
其中url是类似于/Documents/./statistics.pdf的路径。它起作用了,它显示了一个弹出窗口,按钮在iBooks中打开,在Dropbox中打开,但不能通过邮件发送。现在,我用以下代码对其进行了更改:

self.docController = [UIDocumentInteractionController interactionControllerWithURL:url];
self.docController.delegate = self;
[_docController presentOpenInMenuFromRect:_openInIBooksButton.bounds inView:self.openInIBooksButton animated:YES];
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和Mail

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

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


非常感谢。

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


您要使用的是
presentoptions menufromrect:inView:animated:
,它为您提供了所需的选项。

您是否尝试过UIDocumentInteractionController的
presentoptions menufrombarbuttonItem
我认为UIActivityViewController的
initWithActivityItems
参数也接受数组中的NSURL项,这可能会有所帮助。感谢您的响应,但是如果您在数组中放置url,它只显示“通过邮件发送”和“在twitter上发布”选项,如果您点击“通过邮件发送”,则,它用包含url的文本打开mail composer,但没有附加文件..好的,这只是一个想法!关于PresentOptions MenuFromBarbuttonItem呢?非常感谢,但是如果您在邮件中打开附加的PDF,您可以预览它并点击按钮共享,会显示一个弹出窗口,它的选项在iBooks中打开并通过邮件发送,这怎么可能呢?而不是使用
PresentOpenInMeminFromRect:
方法,使用PresentOpenMinumeFromRect:`UIDocumentInteractionController的方法。对不起,您说过同样的话。。。?关于替换PresentOpenMinumeFromRect的方法,您正在谈论什么?对此表示抱歉(复制/粘贴错误)。将对
presentOpenInMemorFromRect:inView:animated:
的调用替换为
presentOptions menufromrect:inView:animated:
@diegomen,那么您实际上没有使用UIActivityViewController?