備忘録

開発の日々の備忘録

UIActivityViewControllerでリマインダーやメモを非表示にする方法


アプリでUIActivityViewControllerを使ったシェアボタン作ってて、リマインダーとメモを非表示にしようとしてハマったのでメモ。

UIActivityViewControllerではexcludedActivityTypesに不要なUIActivityTypeを指定してあげればいいんですが、 マニュアル見てもメモとリマインダーのUIActivityTypeがみつからない!

UIActivityType - UIKit | Apple Developer Documentation

いろいろ調べてみるとどうやら、UIActivityType(rawValue:String)で解決できる模様。

こんな感じ。

let activityController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)

// AirDropとリマインダーとメモいらねーです
activityController.excludedActivityTypes = [
            UIActivityType(rawValue: "com.apple.reminders.RemindersEditorExtension"),
            UIActivityType(rawValue: "com.apple.mobilenotes.SharingExtension"),
            UIActivityType.airDrop,]

なんで用意されてないのかよくわかんないけど、解決できて良かった。

参考

ios - How to exclude Notes and Reminders apps from the UIActivityViewController? - Stack Overflow