3

iOS で「共有...」機能を実装する必要があります。たとえば、ボタンの名前は「共有...」で、メール、SMS、Facebook、Twitter などの項目を含むダイアログがポップアップします。この仕事をする標準的なダイアログがあるのだろうか。

4

3 に答える 3

6

検索した後、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];
于 2013-03-26T15:47:38.467 に答える
1

あなたの 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];
于 2014-02-17T08:40:57.913 に答える
0

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

于 2013-03-25T18:50:00.450 に答える