У меня проблема в моем приложении. После получения некоторых статистических данных я создаю PDF-файл, и я хочу показать UIActivityViewController с параметрами «Open in iBooks» и «Send By Mail» в основном (другие, такие как «Open in 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. Он работал, он показал popover с кнопками, открытыми в iBooks и открытыми в Dropbox, но не Send by Mail. Теперь я изменил его на следующий код:
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. Но я не могу найти для этого решения.
Кто-нибудь нашел эту проблему раньше?
спасибо.
Вы попробовали 'presentOptionsMenuFromBarButtonItem' UIDocumentInteractionController? - И я думаю, что аргумент 'initWithActivityItems' UIActivityViewController также принимает элементы NSURL в массиве, что может помочь. –
Благодарим за ответ, но если вы поместите URL-адрес в массив, он отображает только отправку по почте и публикует по параметрам Twitter, и если вы нажмете на отправку по почте, он откроет почтовый композитор с текстом, содержащим URL-адрес, но без прикрепления файла .. – diegomen
ОК, это была просто идея! Как насчет presentOptionsMenuFromBarButtonItem? –