gpt4 book ai didi

ios - 在 UIActivityViewController 中与不同类型共享数据

转载 作者:可可西里 更新时间:2023-11-01 05:40:53 25 4
gpt4 key购买 nike

以下帖子提出了一个极其相似的问题:Different data for sharing providers in UIActivityViewController .但我的问题是不同的。

我知道如何使用 itemForActivityType 与不同的 Activity 共享相同类型的不同数据。例如:

- (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)。

附言:

我还查看了以下协议(protocol)函数:

- (id)activityViewControllerPlaceholderItem:;

但是,我不能使用它,因为我们不知道这里的 activityType 的值。

最佳答案

您想要创建和共享两个或多个符合 UIActivityItemSource 的对象,其中一个返回字符串,另一个返回图像等。然后,当调用请求项目的委托(delegate)回调时,您检查选择了哪种事件类型(Facebook、邮件、AirDrop 等),并且 ItemSource 的一个或多个返回 nil如果该项目不适用于该事件。确保对于任何选定的事件,至少有一项返回非零值。

你可以看看airdrop sample code获取有关如何实现 UIActivityItemSource

的一些示例

关于ios - 在 UIActivityViewController 中与不同类型共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26551408/

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