UIActivityItemProviderを継承したクラスを作って-item
をoverrideする。以上。
普通に使ってたら-activityViewController:itemForActivityType:
オーバーライドして、いろいろゴニョゴニョしてからreturnしてやればいいんだけど、ここに入る前に何かしたい場合は、別の方法を取る必要がある。
-item
はセカンドスレッドで呼ばれるので、中で同期処理しても大丈夫。ただそのままだとUIはいじれないのでdispatch_async(dispatch_get_main_queue(), ^{});
とかでProgressHUD表示とかしてやればいいと思う。
なんか仕事でコード書いてて、-activityViewController:itemForActivityType:
でなんかする前になんかする必要があったから、この方法を取った気がするんだけど、何が問題だったか覚えてない。