在UIActivityItemProvider中返回文本,网址和图片

时间:2014-11-11 02:40:38

标签: ios uiactivityviewcontroller uiactivity

我为我的UIActivityViewController子类化UIActivityItemProvider,这样当用户选择UIActivityTypeMessage时,它只会显示一条消息,但如果用户选择UIActivityTypeFacebook,它将显示带有图像的消息。

这是我的代码,我只能返回带有UIActivityTypeMessage的消息,但对于UIActivityTypeFacebook,我不知道如何返回带有Image的消息。

- (id)item
{
    if ([self.placeholderItem isKindOfClass:[NSString class]]) {
        if ([self.activityType isEqualToString:UIActivityTypeMessage]) {
            return [NSString stringWithFormat:@"%@\n%@",self.text,self.url];
        } else {
            NSDictionary *d = [[NSDictionary alloc] initWithObjects:@[self.text,self.image] forKeys:@[@"text",@"image"]];
            return d;
        }
    }
    return self.placeholderItem;
}

我是否可以使用UIActivityItemProvider设置消息,网址和图片的特定键和值?

作为更新,我在UIActivity Class Reference中读到了特定活动类型的常量。不知道如何使用它们。有人可以开导我吗?

  

* UIActivityTypePostToFacebook对象将提供的内容发布到   用户在Facebook上的墙。

     

使用此服务时,您可以提供 NSString,NSAttributedString,   UIImage,ALAsset和NSURL 对象作为活动项的数据。   您还可以指定其内容使用的NSURL对象   资产 - 图书馆计划。

1 个答案:

答案 0 :(得分:3)

您需要创建3个单独的活动提供程序,每个数据类型对应一个,并在initWithActivityItems:applicationActivities:上的UIActivityViewController函数中传递所有这些提供程序。 这些活动使用了您提供的所有提供程序,UIActivityViewController隐藏了任何不支持所有提供程序的提供程序(例如,在某些情况下可能难以仅包含图像)。

相关问题