iphone - UIActivityViewController 和 UIActivityItemSource 中用于操作的初始文本和 Papercut URL?

标签 iphone ios user-interface ios6

终于通过了 Apple 关于新 UIActivityViewController 类和 UIActivityItemSource 协议(protocol)的(相当令人沮丧的)文档,我正在尝试将不同的数据集发送到不同的从事件 View 调用的操作。为了简化事情,我正在研究两件事。

  1. 一个 Facebook 发布操作,应该说“Check this out!”并在帖子中附加一个 URL(用那个可爱的小回形针)。
  2. Twitter 发布操作,应该说“使用#hashtag 检查一下!”并附加相同的 URL(使用相同的回形针)。

这是我现在已经实现的代码。

- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {
    if ([activityType isEqualToString:UIActivityTypePostToFacebook]) {
        return @"Check this out!";
    } else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) {
        return @"Check this out, with #hashtag!";
    }

    return @"";
}

- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
    return @"";
}

然后当我设置这个事件 View Controller 时(它在同一个类中),这就是我所做的。

UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:@[self] applicationActivities:nil];
[self presentViewController:activityView animated:YES completion:nil];

我的难题是如何附加NSURL 对象。调用iOS 6 SL 类 Release模式时相对容易;您只需调用各个方法来附加 URL 或图像。我将如何在这里进行此操作?

我会注意到,如果我只返回 NSURL 对象,而不是从 -activityViewController:itemForActivityType 返回 NSString 对象,它们会出现用那个回形针,帖子中没有正文。如果我返回这两项的数组,则什么也不会显示。

最佳答案

显然它就是这么简单:将一个数组传递给 UIActivityViewController 的 init 调用的第一个参数,数组中的每个项目处理一个不同的数据类型,这些数据类型最终将在组成屏幕。 self 处理文本,第二个对象(NSURL)附加 URL。

NSArray *items = @[self, [NSURL URLWithString:@"http://this-is-a-url.com"]];
UIActivityViewController *activityView = [[UIActivityViewController alloc]  initWithActivityItems:items applicationActivities:nil];
[self presentViewController:activityView animated:YES completion:nil];

真的希望有更多关于这方面的内容,但就在这里。

关于iphone - UIActivityViewController 和 UIActivityItemSource 中用于操作的初始文本和 Papercut URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12808586/

相关文章:

iphone - 可以从 Application Delegate 使用 UIActionSheet 吗?

ios - 使用附加元数据将 Wavefront 文件转换为 .ifc

ios - 如何通过点击带有黄色圆圈的按钮来隐藏键盘?

c++ - 帮助使用 WinAPI 包装器

iphone - 您可以使用数组索引值作为谓词中的参数来过滤数组吗

ios - 对多关系作为 sectionNameKeyPath

ios - 我如何在 swift 中为 iphone 应用程序创建全局服务

ios - 蒙版效果是旋转照片

html - 自定义 HTML 选择创建

java - 在 JPanel 中居中对齐 JLabel 中的文本时出现问题