Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Custom UIActivity in Swift 3
import UIKit
class CustomActivity: UIActivity {
var actName = ""
var actImage: UIImage?
var customActionWhenTapped:( ()-> Void)!
init(title: String, image: UIImage, performAction: @escaping (() -> ()) ) {
self.actName = title
self.actImage = image
self.customActionWhenTapped = performAction
super.init()
}
override class var activityCategory: UIActivityCategory {
return .action
}
override var activityType: UIActivityType? {
guard let bundleId = Bundle.main.bundleIdentifier else {return nil}
return UIActivityType(rawValue: bundleId + "\(self.classForCoder)")
}
override var activityTitle: String? {
return actName
}
override var activityImage: UIImage? {
return actImage
}
override func canPerform(withActivityItems activityItems: [Any]) -> Bool {
return true
}
override func prepare(withActivityItems activityItems: [Any]) {
//
}
override func perform() {
customActionWhenTapped()
activityDidFinish(true)
}
}
@w-i-n-s

This comment has been minimized.

Copy link
Owner Author

@w-i-n-s w-i-n-s commented Dec 18, 2017

Now you can init custom UIActivity with name/image/closure, from any place

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment