Da die completionHandler
auf UIActivityViewController
in iOS 8 veraltet war, gibt es eine Möglichkeit festzustellen, welche Freigabeerweiterung/Aktivität vom Benutzer verwendet wurde?Ermitteln, welche Freigabeerweiterung verwendet wurde
5
A
Antwort
14
Sie müssen nur die neuen Handler UIActivityViewControllerCompletionWithItemsHandler
verwenden:
typedef void (^UIActivityViewControllerCompletionWithItemsHandler)(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError);
Aufruf wie folgt vor:
[yourActivityVC setCompletionWithItemsHandler:^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError){
}];
Außerdem, wenn Sie sich fragen, zu wissen, welche Option ausgewählt wurde, können Sie Sie müssen nur sicherstellen, dass Ihre Aktivitätselemente dem Protokoll UIActivityItemSource
entsprechen.
1
setCompletionWithItemsHandler ist iOS8 nur. Wenn Sie iOS6-7 unterstützen müssen dann:
[yourActivityVC setCompletionHandler:^(NSString *activityType, BOOL completed){
}];
1
Dies ist, was wir in Swift verwendet:
...
// Configure UIActivityViewController
let activityViewController = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
activityViewController.excludedActivityTypes = [UIActivityTypeAirDrop,
UIActivityTypeAddToReadingList,
UIActivityTypeAssignToContact,
UIActivityTypePrint,
UIActivityTypeCopyToPasteboard]
// Show UIActivityViewController
presentViewController(activityViewController, animated: true, completion: nil)
// Define completion handler
activityViewController.completionWithItemsHandler = doneSharingHandler
...
func doneSharingHandler(activityType: String?, completed: Bool, returnedItems: [AnyObject]?, error: NSError?) {
// Return if cancelled
if (!completed) {
return
}
// If here, log which activity occurred
println("Shared video activity: \(activityType)")
}
Verwandte Themen
- 1. Ermitteln, für welche Ziel-CPU ein GCC konfiguriert wurde?
- 2. Ermitteln, welche Benutzersteuerung in einem Formular geklickt wurde
- 3. Ermitteln, welche Version von OpenCV
- 4. So ermitteln Sie, welcher Compiler verwendet wurde: g77 oder gfortran
- 5. Kann ich feststellen, welche Submit-Schaltfläche in JavaScript verwendet wurde?
- 6. Wie kann ich herausfinden, welche Hash-Funktion verwendet wurde?
- 7. Bestimmen Sie, welche DateTimePattern Muster joda verwendet wurde
- 8. Woher weiß ich, welche Vorverarbeitung für das Modell verwendet wurde?
- 9. Wie überprüft man, ob/welche Matplotlibre verwendet wurde
- 10. herausfinden, welche URI wurde verwendet, um mich anzurufen?
- 11. Welche git merge-Strategie wurde beim Zusammenführen verwendet?
- 12. Ermitteln, welcher toggleButotn geklickt wurde
- 13. Ermitteln, welcher Webserver verwendet wird
- 14. Ermitteln, ob iOS webapp verwendet
- 15. Ermitteln, wie die Assembly aufgerufen wurde
- 16. Ermitteln, ob die .class-Datei mit Debug-Informationen kompiliert wurde?
- 17. So ermitteln Sie, welcher Compiler angefordert wurde
- 18. Ermitteln der OSX-Mindestversion Eine Binärdatei wurde für
- 19. iOS-Freigabeerweiterung zeigt nur in Safari
- 20. Welche Passwortverschlüsselung verwendet Jenkins?
- 21. Welche Passwortverschlüsselung verwendet Hudson?
- 22. Welche Identität verwendet CodeFluentUser.Current?
- 23. Welche Funktion verwendet Python?
- 24. Welche Rechtschreibprüfung verwendet StackOverflow?
- 25. Welche Maßeinheit verwendet LayoutParams?
- 26. Welche Algorithmen verwendet SQL?
- 27. Welche Ports verwendet XMPP?
- 28. NSURLSession mit Freigabeerweiterung gibt -995 auf OSX
- 29. Welcher Parametersatz wurde verwendet?
- 30. Ermitteln, welche Ansicht in @RenderBody gerendert wird()
Hmm, seltsam. Apple erwähnt das in den Dokumenten nicht nur in den API-Diffs ... Danke! – edc1591