概念:官方文档传送门
实现方式:自定义一个对象并遵循UIActivityItemSource协议
自定义对象如下:
class AirDropOnlyActivityItemSource: NSObject, UIActivityItemSource {
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
return NSURL(string: "")!
}
func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? {
return item
}
/// The item you want to send via AirDrop.
let item: Any
init(item: Any) {
self.item = item
}
}
使用方式如下:
let itemSource = AirDropOnlyActivityItemSource(item: 这里是任何类型,你可以传URL进去)
let activityControler = UIActivityViewController(activityItems: [itemSource], applicationActivities: nil)
备注:每一个对象都要遵循这个****UIActivityItemSource协议!!!
如果想传多个文件,则如下:
///这个数组就自己添加你想传的文件
var items: [AirDropOnlyActivityItemSource] = []
for 循环 {
let itemSource = AirDropOnlyActivityItemSource(item: 这里是任何类型,你可以传URL进去)
items.append(itemSource)
}
let activityControler = UIActivityViewController(activityItems: items, applicationActivities: nil)
此外,我们还可以通过设置该excludedActivityTypes属性来控制显示的内容(如果单单设置这个属性,还不足以达到我们想要的效果,因此还需要上述那样子做才行)
这里不做解释!!!