如何创建标准的iOS Share按钮?

时间:2013-11-01 22:30:53

标签: ios cocoa-touch ios7 uikit share

The iOS Human Interface Guidelines say

  

使用系统提供的“共享”按钮。用户熟悉此按钮的含义和行为,因此最好尽可能使用它。主要的例外是,如果您的应用程序不包含工具栏或导航栏[,因为]“共享”按钮只能在工具栏或导航栏中使用。

好的,但我如何“使用系统提供的共享按钮”? A search of the documentation没有任何用处。

我收集了I should use UIActivityViewController in my response to the button being tapped,但我如何首先创建标准的“分享”按钮?

7 个答案:

答案 0 :(得分:40)

标准的“共享”按钮是一个UIBarButtonItem(因此它只能在导航栏或工具栏上)。你需要create a “system item”;具体而言,an “action item”。 “操作”栏按钮项是“共享”按钮。

答案 1 :(得分:27)

这是代码。我假设你在ViewController里面,所以self有navigationItem属性。

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

答案 2 :(得分: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];
}

答案 3 :(得分:6)

Main.storyboard - >条形按钮项目 - >检查员 - >系统项目 选择了“行动”enter image description here

答案 4 :(得分: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!
}

答案 5 :(得分:2)

系统提供的Action按钮也可以使用Interface Builder完全创建。要做到这一点,只需拖放&将 UIToolbar 放到您的视图中。比拖累将 UIBarButtonItem 放入UIToolbar。下一步在视图层次结构中选择 UIBarButtonItem ,转到属性检查器并选择“操作”作为系统项。 完成!

此外,可以将 UIBarButtonItem 与您的类连接为IBOutlet或IBAction。

请注意:我使用Xcode 7作为参考。

答案 6 :(得分:1)

我只花2美分购买Swift 4 / Xcode 10:

1)操作已更改了初始字符:

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

2)添加@obj:

@objc func shareButtonPressed() {
    //Do something now!
}