【发布时间】:2014-12-20 11:56:29
【问题描述】:
以下帖子提出了一个非常相似的问题:Different data for sharing providers in UIActivityViewController。但我的问题不同。
我知道如何使用itemForActivityType 将同一类型的不同不同数据共享给不同的活动。例如:
- (id) activityViewController:(UIActivityViewController *)activityViewController
itemForActivityType:(NSString *)activityType
{
if ( [activityType isEqualToString:UIActivityTypePostToTwitter] )
return @"This is a #twitter post!";
if ( [activityType isEqualToString:UIActivityTypePostToFacebook] )
return @"This is a facebook post!";
if ( [activityType isEqualToString:UIActivityTypeAirDrop] )
return @"Airdrop message text";
else
return nil;
}
但是,我的问题是:如果我有不同类型的数据要与不同的活动共享,我该怎么办?。例如,如果我想分享:
- Twitter 上的一个字符串;
- Facebook 上的字符串数组和图像;
- 使用 Airdrop 的图像的实际数据(例如 NSData)。
附注:
我还看了下面的协议函数:
- (id)activityViewControllerPlaceholderItem:;
但是,我不能使用它,因为我们不知道这里 activityType 的值。
【问题讨论】:
-
"但是,在这个函数中,我没有访问 activityType 的权限。"但另一方面,这只是一个占位符。文档(与您引用的标题相反)清楚地表明您可以在到达
itemForActivityType:时更改类型。 -
@matt,是的,你是对的。我实际上是在引用头文件中的描述。但我没有看到它提到我们可以更改类型的地方。可以请我指出来吗?我找不到它了。而且,我试过了,如果返回类型与占位符类型不匹配,它就不会起作用。
标签: ios objective-c ios7