シェアシート内のこれら。
こっちの灰色な方を独自実装する方法。Tumblrだと不適切としてフラグを付ける
が、ここに独自で作られて入ってる。そんなUIActivityをSwiftで実装する方法。
まず、UIActivityを継承したクラスを作って、いくつかのメソッドをオーバライドする。
class CustomAlertsActivity: UIActivity { override func activityTitle() -> String? { return "アクティビティの名前" } override func activityImage() -> UIImage? { return UIImage(named: "ImageName") } override func activityType() -> String? { return "com.example.myapp" } override func canPerformWithActivityItems(activityItems: [AnyObject]) -> Bool { // trueを返すと表示される // activityItemsの中身をみて、表示するかどうか判断する return true } override func prepareWithActivityItems(activityItems: [AnyObject]) { // 選択された時の処理を書く } }
使う時はこうやって書く。
let string: String = "なんらかのテキスト" let url: NSURL = NSURL(string: "http://www.example.com/")! let activityItems: [AnyObject] = [ string, url ] let applicationActivities = [ CustomActivity() // <- 上で作ったやつ ] let activityViewController = UIActivityViewController(activityItems: activityItems, applicationActivities: applicationActivities) // 不要なデフォルトアクティビティはここに登録して消す let excludedActivityTypes = [ UIActivityTypePrint, UIActivityTypeAssignToContact ] activityViewController.excludedActivityTypes = excludedActivityTypes presentViewController(activityViewController, animated: true, completion: nil)
簡単。