42

iOS ヒューマン インターフェイス ガイドラインには次のように書かれています

システム提供の共有ボタンを使用します。ユーザーはこのボタンの意味と動作に慣れているため、可能な限り使用することをお勧めします。これに対する主な例外は、アプリにツールバーまたはナビゲーション バーが含まれていない場合です[[として]] [共有] ボタンはツールバーまたはナビゲーション バーでのみ使用できます。

わかりましたが、「システム提供の共有ボタンを使用する」にはどうすればよいですか? ドキュメントを検索しても、何も役に立ちません。

ボタンがタップされたことへの応答で UIActivityViewController を使用する必要があることを収集しましたが、そもそも標準の共有ボタンをどのように作成すればよいでしょうか?

4

7 に答える 7

44
于 2013-11-01T22:30:52.710 に答える
13

これはあなたのviewDidLoadに入ります:

UIBarButtonItem *shareButton = [[UIBarButtonItem alloc]
                                initWithBarButtonSystemItem:UIBarButtonSystemItemAction
                                target:self
                                action:@selector(compartir:)];
self.navigationItem.rightBarButtonItem = shareButton;

そして、セレクターメソッドがアクションとして呼び出されるように定義します(私の場合は「compartir」という名前です):

- (void) compartir:(id)sender{

//Si no


NSLog(@"shareButton pressed");


NSString *stringtoshare= @"This is a string to share";
UIImage *imagetoshare = img; //This is an image to share.

NSArray *activityItems = @[stringtoshare, imagetoshare];
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypePostToTwitter, UIActivityTypePostToWeibo];
[self presentViewController:activityVC animated:YES completion:nil];
}
于 2016-01-18T14:04:26.723 に答える
3

Swift 3 のコードは次のとおりです。

func addShareBarButtonItem() {

    let shareButton = UIBarButtonItem(barButtonSystemItem: .Action, target: self, action: #selector(MyViewController.shareButtonPressed))

    self.navigationItem.rightBarButtonItem = shareButton
}

func shareButtonPressed() {
    //Do something now!
}
于 2016-11-26T13:57:18.700 に答える