2013-04-22 15 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