按下项目按钮时让本机“共享表”拉起
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以上是关于按下项目按钮时让本机“共享表”拉起的主要内容,如果未能解决你的问题,请参考以下文章
每次按下按钮都会触发本机 TextInput onSubmitEditing