Mam problem w mojej aplikacji. Po uzyskaniu statystyk generuję plik PDF i chcę pokazać UIActivityViewController z opcjami "Otwórz w iBooks" i "Wyślij pocztą" głównie (inne, takie jak "Otwórz w Dropbox" byłby świetny).Sterownik UIActivityViewController nie wyświetla opcji "Otwórz w iBooks"
Dobrze jest to, że przed próbuje użyć UIActivityViewController używałem UIDocumentInteractionController, z następującego kodu:
self.docController = [UIDocumentInteractionController interactionControllerWithURL:url];
self.docController.delegate = self;
[_docController presentOpenInMenuFromRect:_openInIBooksButton.bounds inView:self.openInIBooksButton animated:YES];
Gdzie URL jest ścieżka jak /Documents/../statistics.pdf. Udało się, pokazało popover z przyciskami otwartymi w iBooks i otwarte w Dropbox, ale nie Wyślij przez e-mail. Teraz zmieniłem go za pomocą następującego kodu:
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];
Gdzie pdfData jest obiektem NSData. I to też działa, ale teraz pokazuje opcję wysyłania go pocztą e-mail, ale nie dotyczy opcji iBooks. Oszalam, ponieważ nie znajduję przyczyny tego zachowania i potrzebuję dwóch opcji: iBook i Mail.
Nie wiem, czy ma to coś wspólnego z faktem, że UIDocumentInteractionController ma ścieżkę, która kończy się na .pdf, a UIActivityViewController ma tylko obiekt NSData. Ale nie mogę znaleźć na to rozwiązania.
Ktoś już znalazł ten problem?
Dziękuję bardzo.
Czy wypróbowałeś 'presentOptionsMenuFromBarButtonItem' z UIDocumentInteractionController? - I myślę, że argument "initWithActivityItems" w UIActivityViewController akceptuje również elementy NSURL w tablicy, co może pomóc. –
Dziękuję za odpowiedź, ale jeśli umieścisz adres URL w tablicy, pokazuje on tylko wysyłanie przez pocztę i publikuje na opcjach twittera, a jeśli wybierzesz opcję Wyślij pocztą, otworzy on kompilator poczty z tekstem zawierającym adres URL, ale bez dołączania pliku .. – diegomen
OK, to był tylko pomysł! A co z presentOptionsMenuFromBarButtonItem? –