gpt4 book ai didi

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

转载 作者:技术小花猫 更新时间:2023-10-29 11:01:28 24 4
gpt4 key购买 nike

终于通过了 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com