按下项目按钮时让本机“共享表”拉起

Posted

技术标签:

【中文标题】按下项目按钮时让本机“共享表”拉起【英文标题】:Getting the native "share sheet" to pull up when item button is pressed 【发布时间】:2015-08-26 17:34:18 【问题描述】:

我正在为我的实习完成一个 rss 阅读器应用程序,我需要实现的最后一件事是 uiwebview 右上角的“共享”按钮,该按钮显示文章的移动站点链接。

这是网页视图导航控制器的截图:

我使用了一个免费的开源代码项目来完成这项工作,因为我在 xcode 方面没有太多经验,而且我必须在很短的时间内完成它。正如您从屏幕截图中看到的那样,uiwebview 覆盖了整个控制器,我无论如何都找不到简单地在 uinaviagtionbar 上放置一个按钮,因为它不存在。当我将“导航项”下的“项”放入左侧面板的详细场景并运行项目时,它确实显示在 Web 视图的导航栏中。它只是说“项目”,当点击时显然什么都不做:

所以我的问题是,我如何以编程方式或任何其他方式进行设置,以便在单击此共享表时显示:

我整个星期都在尝试各种不同的方式,从其他答案和来自网络的最少量信息。似乎没有什么对我有用,也没有任何明确的教程。我只剩下两天时间来完成这个应用程序,这是我需要做的最后一件事。如果有人愿意花时间并可能提供某种逐步的步骤,以便我也可以学习(并且有这个答案以供将来的努力查看),我将非常感激。

谢谢

【问题讨论】:

【参考方案1】:

将此代码放入您的按钮操作中

-(void) showSharingActivity 
    NSString *string = @"string to share";
    NSURL *URL = [NSUrl urlWithString:@"https://www.google.co.in"];

    UIActivityViewController *activityViewController =
      [[UIActivityViewController alloc] initWithActivityItems:@[string, URL]
                                        applicationActivities:nil];
    [navigationController presentViewController:activityViewController
                                          animated:YES
                                        completion:^
      // ...
    ];

然后像这样在导航栏中添加一个按钮

UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain target:self action:@selector(showSharingActivity)];          
self.navigationItem.rightBarButtonItem = anotherButton;

【讨论】:

如何将按钮设置为动作?到目前为止,我只是将“项目”按钮放在右侧面板的“导航项目”下 我在实现这个时遇到错误:“No known class method for selector 'presentViewController:animated:completion:'”和“NSString *string = ...; NSURL *URL = ... ; 我得到“预期的表达” 已编辑,查看@Christophorus 好的,顶部编辑现在可以工作了,但不幸的是,“[navigationController presentViewController:activityViewController animated:YES”这行仍然给我:“No known class method for selector 'presentViewController:animated:completion:' 用self替换navigationController

以上是关于按下项目按钮时让本机“共享表”拉起的主要内容,如果未能解决你的问题,请参考以下文章

Unity3D 门打开/关闭错误

每次按下按钮都会触发本机 TextInput onSubmitEditing

如何在本机反应中捕捉 ios 设备按钮按下?

React本机IOS,当TextInput获得焦点时,按钮按下不注册

当你有密钥时让 Git 项目开源

按下 Ctrl 和光标键时让 Visual Studio 理解 CamelCase