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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何创建标准的iOS Share按钮?相关的知识,希望对你有一定的参考价值。

The iOS Human Interface Guidelines say

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

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

我收集了I should use UIActivityViewController in my response to the button being tapped,但我怎么能首先创建标准的Share按钮?

答案

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

另一答案

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

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

这在你的viewDidLoad中:

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

并将您的选择器方法定义为action(在我的例子中命名为“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];
}
另一答案

Main.storyboard - > Bar Button Item - > Inspector - > System Item选择“Action”enter image description here

另一答案

这是Swift 3的代码。

func addShareBarButtonItem() {

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

    self.navigationItem.rightBarButtonItem = shareButton
}

func shareButtonPressed() {
    //Do something now!
}
另一答案

系统提供的Action按钮也可以使用Interface Builder完全创建。为此,只需将UIToolbar拖放到视图中即可。然后将UIBarButtonItem拖放到UIToolbar中。下一步在视图层次结构中选择UIBarButtonItem,转到Attribute Inspector并选择“Action”作为System Item。完成!

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

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

另一答案

对于swift 4 / Xcode 10,只有我的两美分:

1)动作的初始字符改变了:

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

2)添加@obj:

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

以上是关于如何创建标准的iOS Share按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何在片段中使用按钮[关闭]

如何将按钮功能添加到片段中

使用导航架构操作点击返回按钮时如何避免片段重新创建?

如何从Android中的片段单击按钮打开片段

按下后退按钮时正在重新创建 Listview 片段

片段中的按钮自定义视图