UIActivityViewControllerにActivityを追加する方法

UIActivityViewControllerで「共有」みたいなメニューを追加できるようになると、そこに自分のアプリケーション独自の機能を入れたくなりました。
追加機能は、UIActivityViewControllerから見ると2種類に分けられて、「処理を実行する」と「ユーザーから追加の入力を受けて処理を実行する」。
まぁ、選択後に別のビューを表示する必要があるかどうかの違いです。

Activity

Activityは、実際には、UIActivityというクラスを継承したものを使い必要があります。以下のような形で実装する感じ。
プロパティ等の詳細は、Appleドキュメントを参照してください。

Activity実装のポイント

実際には、performとactivityViewのどちらかだけの実装を選択します。
具体的には、選択されたことをきっかけに処理を実行するだけであれば、performを実装すればよくて、何かビューを表示してユーザーとさらにやり取りする必要があれば、activityViewControllerを実装することとなります。

Activityが表示されるためには

UIActivityViewControllerをインスタンス化するときに、引数として渡すことのできる applicationActivitiesとして設定することで表示されるようになります。
以下、サンプルコード

このように実装していくと、iOSから提供されるサービス(この場合は、共有メニューとそこに表示される標準機能)と自分で開発した機能が 一緒に表示されるようになるので、アプリケーションのiOSとの親和性が高く見えるようになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です