55

iOS 7 をサポートするほとんどの iOS アプリケーションで、共有オプションのこの形式 (下に表示されている画像) を見てきました。下の画像に示されているように、この共有オプションを実装するために使用できるデフォルトのコード/フレームワークはありますか?

4

6 に答える 6

53

あなたが探しているのは、UIActivityViewControllerです。

あなたは一般的な質問をしたので、ドキュメントへのリンクを提供する以上のことはできません

于 2013-10-30T12:59:00.260 に答える
4

投稿した画像のコントローラーは UIActivitiyViewController です。これはクラスのドキュメントへのリンクです

于 2013-10-30T12:59:24.767 に答える
1

UIActivityViewControllerあなたが探しているものです。

アイテムまたはアプリケーションのいずれかを指定できます

UIActivityViewController *actCont = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
于 2013-10-30T13:10:55.183 に答える
1

デフォルトの共有には次のコードを使用してください。shareItems要件に応じて、さらに項目を配列に追加できます。

NSMutableArray *shareItems = [[NSMutableArray alloc] initWithObjects: 
                                 @"Hello", 
                                 [UIImage imageNamed:@"your_image.png"], 
                                 @"http://google.com/", nil];
[self shareItemToOtherApp:shareItems];

次の方法は、テキストまたは画像を他のアプリにデフォルトで共有するためのものです:-

-(void)shareItemToOtherApp:(NSMutableArray *)shareItems{
    UIActivityViewController *shareController = [[UIActivityViewController alloc]
                                                 initWithActivityItems: shareItems applicationActivities :nil];

    [shareController setValue:@"Sharing" forKey:@"subject"];
    shareController.excludedActivityTypes = @[UIActivityTypePostToWeibo, UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeSaveToCameraRoll];

    shareController.completionHandler = ^(NSString *activityType, BOOL completed)
    {
        //NSLog(@" activityType: %@", activityType);
        //NSLog(@" completed: %i", completed);
    };

    [self presentViewController: shareController animated: YES completion: nil];
}

カスタム共有シートを作成する場合は、次のコードを使用します。このためには、フレームワークをインポートする必要があります<Social/Social.h>

-(void)shareOnFacebook:(id)sender {
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
    {
        SLComposeViewController *faceSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
        // NSLog(@"%@", messageField.text);//This returns the appropriate string
        [faceSheet setInitialText:@"Hellooooooo"];
        //The facebook VC appears, but initial text is not set to messageField.text
        [self presentViewController:faceSheet animated:YES completion:nil];
    }
    else
    {
        NSLog(@"Please first install Application and login in Facebook");
    }
}

-(void)shareOnTwitter:(id)sender {
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
    {
        SLComposeViewController *tweetSheet = [SLComposeViewController
                                               composeViewControllerForServiceType:SLServiceTypeTwitter];
        [tweetSheet setInitialText:@"Hello"];
        [self presentViewController:tweetSheet animated:YES completion:nil];
    }
    else{
        NSLog(@"Please first install Application and login in Twitter");
    }
}

希望、これはあなたが探しているものです。ご不明な点がございましたら、ご連絡ください。:)

于 2016-02-08T10:12:44.990 に答える