iOS 6.0 アプリのカスタム コンテンツを電子メールで共有したいと考えています。
しかし、コンテンツを共有する前に準備に時間がかかるため、ユーザーが「共有」ボタンを押したときにすぐにメール作成ビューを表示することができません。残念ながら、MFMailComposeViewController は最初からすべての添付ファイルを必要とするため、MFMailComposeViewController を初期化して表示するには、添付ファイルを待つ必要があります (ここで提案されているように: UIActivityView attach file to Email ) 。
-- Sapan の回答を読んだ後に編集: 私が探しているのは、たとえば、まだ作成する必要があるビデオ ファイルを共有するときの UIActivityViewController のような動作です: ユーザーが共有ボタンを押すと、すぐに UIActivityController が表示されます。添付ファイルはバックグラウンドで作成され、作成によってユーザー エクスペリエンスが中断されることはありません。--
私はUIActivityViewControllerを非同期UIActivityItemProvider機能で試してみましたが、残念ながらこれは画像やビデオなどの公開MIMEタイプの添付ファイルに対してのみ機能するようです。私のカスタム NSData 'item' は、Facebook での共有 (これは完全に理にかなっています) だけでなく、電子メール共有でも単に無視されます。または、ここで何か間違ったことをしていますか:
MyUIActivityItemProvider *myCustomDocProvider = [[MyUIActivityItemProvider alloc] initWithPlaceholderItem:[[NSData alloc]init] andCustomInfoToCreateNSDataFrom:customAppInfo];
UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:@[myTextString, myCustomDocProvider] applicationActivities:nil];
[self presentViewController:activityVC animated:YES completion:nil];
ユーザーが入力している間/入力した後にバックグラウンドで添付ファイルを作成できるように、独自のカスタム メール コンポーザー ビューを作成することを既に考えています。しかし、私はしたくありません。HIG で読んだ「UI 要素の一貫性」という考え方が気に入っています。
私に何ができる?