当我只是传入一个NSString时,一切都很完美,但是当我试图传递我的自定义ItemProvider时,我没有任何共享操作可用。
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")时,一切都很完美。我在执行过程中搞砸了什么?
发布于 2015-02-22 01:12:18
我用以下方法解决了这个问题:
class MyCustomProvider: NSObject, UIActivityItemSource {
var placeholder: String!
var alternate: String!
init(placeholder: String, alternate: String) {
self.placeholder = placeholder
self.alternate = alternate
super.init()
}
func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
return NSString(string: placeholder)
}
func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
if activityType == UIActivityTypeMessage {
return NSString(string: alternate)
} else {
return NSString(string: placeholder)
}
}
}我不知道为什么,但很管用。
发布于 2015-04-28 21:48:55
我相信您必须将placeholderItem设置为要在item()中返回的类型。
可以代表您计划创建的实际对象的对象。对象的内容可能是空的,但对象的类必须与您计划稍后提供的对象的类匹配。
https://stackoverflow.com/questions/28653231
复制相似问题