我的應用程序出現問題。獲得一些統計數據後,我生成一個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