Poiché lo completionHandler
su UIActivityViewController
è stato dichiarato obsoleto in iOS 8, esiste un modo per determinare quale estensione/attività di condivisione è stata utilizzata dall'utente?Determinare quale estensione di condivisione è stata utilizzata
5
A
risposta
14
Hai solo bisogno di utilizzare il nuovo gestore UIActivityViewControllerCompletionWithItemsHandler
:
typedef void (^UIActivityViewControllerCompletionWithItemsHandler)(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError);
chiamare in questo modo:
[yourActivityVC setCompletionWithItemsHandler:^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError){
}];
Inoltre, se ti stai chiedendo di sapere quale oggetto è stato selezionato, è è sufficiente garantire che gli elementi di attività siano conformi al protocollo UIActivityItemSource
;
1
setCompletionWithItemsHandler è solo iOS 8. Se è necessario supportare iOS6-7 poi:
[yourActivityVC setCompletionHandler:^(NSString *activityType, BOOL completed){
}];
1
Questo è quello che abbiamo usato a Swift:
...
// 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)")
}
Problemi correlati
- 1. Scoprire cosa è stata utilizzata vista EJB
- 2. Quale delle due eccezioni è stata chiamata?
- 3. trasformazione web.config: aggiungi commento XML per indicare quale configurazione è stata utilizzata
- 4. C'è un modo per sapere quale versione groovy è stata utilizzata nel progetto Grails?
- 5. Come posso determinare quale cella di una tabella è stata selezionata?
- 6. Determinare quale rubygem stai utilizzando
- 7. Limitazione delle attività di estensione condivisione UIActivityViewController
- 8. Rilevare quale query reattiva è stata attivata
- 9. UITableView - quale riga è stata selezionata?
- 10. Come determinare dove è stata messa a fuoco?
- 11. Quale unità di misura viene utilizzata per determinare la precisione del GPS con l'API geo HTML5?
- 12. Rilevare dalla quale UILocalNotification un'applicazione è stata aperta
- 13. Come posso sapere quale versione di Visual Studio è stata utilizzata per l'ultima volta su un progetto?
- 14. come distinguere quale parte di UITableViewCell è stata cliccata
- 15. Capire quale voce di menu è stata attivata in Qt
- 16. come verificare quale versione di nltk, scikit è stata installata?
- 17. In quale file è stata definita la combinazione di tasti?
- 18. Quale soluzione OpenID è realmente utilizzata da Stack Overflow?
- 19. Come sapere quale variabile da Union è utilizzata?
- 20. Come determinare se un'immagine è stata ritagliata da photoshop?
- 21. Come determinare quando è stata raggiunta la fine del file?
- 22. come determinare se la pagina web è stata modificata
- 23. Determinare se l'applicazione iOS è stata avviata tramite Siri
- 24. come determinare se l'attività è stata completata Timer
- 25. Strumento per determinare quale versione minima di Python è richiesta?
- 26. Come determinare quale campo di testo è attivo swift
- 27. CakePHP 2.0 Determinare quale pulsante di invio è stato cliccato
- 28. URL di estensione di condivisione iOS in Swift
- 29. GIT e SSH, quale chiave viene utilizzata?
- 30. Come determinare quale CRC utilizzare?
Hmm, strano. Apple non menziona questo nei documenti solo nelle differenze API ... Grazie! – edc1591