Когда я просто передаю NSString, все работает отлично, но когда я пытаюсь передать свой пользовательский ItemProvider, я не получаю никаких доступных акций.При использовании подкласса UIActivityItemProvider никаких дополнительных действий при использовании подкласса
MyCustomProvider
class MyCustomProvider: UIActivityItemProvider {
var placeholder: String!
var alternate: String!
init(placeholder: String, alternate: String) {
self.placeholder = placeholder
self.alternate = alternate
super.init()
}
override func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
if activityType == UIActivityTypeMessage {
return NSString(string: alternate)
} else {
return NSString(string: placeholder)
}
}
}
Где я исполню:
var stringToShare = MyCustomProvider(placeholder: "Placeholder", alternate: "Alternate")
var sharingItems = [AnyObject]()
sharingItems.append(stringToShare)
let activityViewController = UIActivityViewController(activityItems: sharingItems, applicationActivities: nil)
activityViewController.excludedActivityTypes = [UIActivityTypePrint, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr, UIActivityTypePostToVimeo, UIActivityTypeAirDrop]
self.presentViewController(activityViewController, animated: true, completion: nil)
Когда stringToShare выше, вместо этого NSString(string: "Placeholder")
, все работает отлично. Что я испортил в своей реализации?
Я пробовал много вещей. Ничего не работает. – David