Ich habe ein Problem in meiner App. Nachdem ich einige Statistiken bekommen habe, generiere ich eine PDF-Datei, und ich möchte einen UIActivityViewController mit den Optionen "Öffnen in iBooks" und "Senden per Mail" hauptsächlich anzeigen (andere wie "Öffnen in Dropbox" wären toll).UIActivityViewController zeigt nicht "Öffnen in iBooks" -Option
Nun, die Sache ist, dass die Verwendung UIActivityViewController, bevor Sie versuchen, ich UIDocumentInteractionController wurde mit, mit dem folgenden Code:
self.docController = [UIDocumentInteractionController interactionControllerWithURL:url];
self.docController.delegate = self;
[_docController presentOpenInMenuFromRect:_openInIBooksButton.bounds inView:self.openInIBooksButton animated:YES];
Wo url ist ein Weg, wie /Documents/../statistics.pdf. Es funktionierte, es zeigte ein Popover mit den in iBooks geöffneten und in Dropbox geöffneten Buttons, aber nicht Send by Mail. Jetzt habe ich es mit dem folgenden Code geändert:
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];
Wo pdfData ist ein NSData-Objekt. Und es funktioniert auch, aber jetzt zeigt es die Möglichkeit, es per E-Mail, aber nicht die iBooks Option zu senden. Ich werde verrückt, weil ich den Grund für dieses Verhalten nicht finde und ich die beiden Optionen, iBooks und Mail, brauche.
Ich weiß nicht, ob es etwas damit zu tun hat, dass der UIDocumentInteractionController einen Pfad hat, der mit .pdf endet und der UIActivityViewController nur ein NSData-Objekt hat. Aber dafür kann ich keine Lösung finden.
Jemand hat dieses Problem vor gefunden?
Vielen Dank.
Haben Sie versucht, 'presentOptionsMenuFromBarButtonItem' von UIDocumentInteractionController? - Und ich denke, dass das 'initWithActivityItems'-Argument von UIActivityViewController auch NSURL-Elemente im Array akzeptiert, die helfen könnten. –
Danke für die Antwort, aber wenn Sie eine URL in das Array legen, zeigt es nur die per E-Mail senden und Twitter-Optionen veröffentlichen, und wenn Sie auf per E-Mail senden tippen, öffnet es den Mail-Composer mit einem Text, der die URL enthält ohne die Datei anzuhängen .. – diegomen
OK, es war nur eine Idee! Was ist mit presentOptionsMenuFromBarButtonItem? –