iOS で「共有...」機能を実装する必要があります。たとえば、ボタンの名前は「共有...」で、メール、SMS、Facebook、Twitter などの項目を含むダイアログがポップアップします。この仕事をする標準的なダイアログがあるのだろうか。
3 に答える
検索した後、UIActivityViewController を使用して、iOS6 で非常に「標準的な」方法と思われる方法を見つけました。
以下は、developer.apple.com からの説明です。
UIActivityViewController クラスは、アプリケーションからさまざまなサービスを提供するために使用できる標準のビュー コントローラーです。このシステムは、ペーストボードへのアイテムのコピー、ソーシャル メディア サイトへのコンテンツの投稿、電子メールや SMS によるアイテムの送信など、いくつかの標準サービスを提供します。アプリは、カスタム サービスを定義することもできます。
以下は、UIActivityViewController を使用して作成できたダイアログです。
そして、以下は私が使用するソースコードです:
NSArray *activityItems = [NSArray arrayWithObjects: share_text.text, share_image.image , nil];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
あなたの ViewController.m で:
NSString *message = @"The Flyer http://flyerdream.tumblr.com";
UIImage *image = [UIImage imageNamed:@"flyer"];
NSArray *arrayOfActivityItems = [NSArray arrayWithObjects:message, image, nil];
UIActivityViewController *activityVC = [[UIActivityViewController alloc]
initWithActivityItems:arrayOfActivityItems applicationActivities:nil];
[self.navigationController presentViewController:activityVC animated:YES completion:nil];
UIActivityViewController を使用した後、以下に投稿したものよりもはるかに優れたソリューションだと思います。個々の共有方法が誰かに役立つ可能性があるため、回答を残しました。
これは、私のプロジェクトに共有機能を実装した方法です。
電子メール: を使用しMFMailComposeViewController
ます。こちらのドキュメントを参照してください: http://developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMailComposeViewController_class/Reference/Reference.html
フェイスブック&ツイッター:ご利用くださいSLComposeViewController
。こちらのドキュメントを参照してください: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Reference/SLComposeViewController_Class/Reference/Reference.html
例:
// prepare and present SLComposeViewController if service is available
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
SLComposeViewController *socialPost = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[socialPost setInitialText:@"TEXT FOR POST"];
[socialPost addImage:[UIImage imageNamed:@"yourImage.png"]];
[self presentViewController:socialPost animated:YES completion:nil];
}
// set up a completion handler
[socialPost setCompletionHandler:^(SLComposeViewControllerResult result) {
switch (result) {
case SLComposeViewControllerResultDone:
// post was completed
break;
case SLComposeViewControllerResultCancelled:
// post was cancelled
break;
default:
break;
}
}
注: Twitter に投稿する場合は、上記のコード サンプルのSLServiceTypeFacebook
をに置き換えます。SLServiceTypeTwitter