gpt4 book ai didi

ios - 在单个 UIActivityViewController 中为不同的服务提供不同的内容

转载 作者:行者123 更新时间:2023-11-29 10:59:39 25 4
gpt4 key购买 nike

我想在 UIActivityIndi​​catorView 中为不同的服务提供不同的内容。例如,用于电子邮件的 HTML 字符串、用于 Facebook/Twitter 的标准字符串以及用于复制的图像。所有这一切都发生在一个弹出窗口中。

我认为这是不可能的。当我尝试所有涉及的类时,我注意到出现在事件 View 中的服务随着我提供的内容类型的变化而变化。换句话说,当我提供一个字符串时,出现了一组服务。当我提供图像时,出现了 B 组服务。

接下来我尝试添加字符串和图像,认为它可能会提供不同的内容,但这只是将字符串和图像都添加到服务中(例如,使用字符串创建电子邮件,然后是下面的图像)。

这是我提供字符串值(即 html 链接)的方式:

-(void)shareButtonTouchUpInside:(SMActionToolbarViewController*)sender{
// Reposition anchor view for UIPopoverController to point at
[self repositionAnchorViewToButtonFrame:self.actionToolbarViewController.shareButtonFrame];

// Asynch download of image
[SMUtility downloadAsset:self.selectedAsset completion:^(UIImage *image) {
// Create image source
SMActivitySource *activityImageSource = [[SMActivitySource alloc]initWithImage:image];
// Create string source
NSString *assetsString = [SMUtility assetsString:[NSArray arrayWithObject:self.selectedAsset]];
SMActivitySource *activityStringSource = [[SMActivitySource alloc]initWithString:assetsString];

// Present UIActiviyViewController within an UIPopoverController
NSArray *items = [@[activityImageSource, activityStringSource]mutableCopy];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc]initWithActivityItems:items applicationActivities:nil];
[activityViewController setCompletionHandler:^(NSString *activityType, BOOL completed){
// TODO: Populate mixpanel data
[SMMixPanel eventSharePhotoMethod:@"Unknown"];
}];
self.buttonPopoverController = [[UIPopoverController alloc] initWithContentViewController:activityViewController];
[self.buttonPopoverController presentPopoverFromRect:self.anchorView.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}];
}

最佳答案

你应该继承UIActivityItemProvider或创建符合 UIActivityItemSource 的对象.传入一个数组(每个你想分享的东西一个),并根据 activityViewController:itemForActivityType: 调用中选择的事件让其中一些返回 nil。

关于ios - 在单个 UIActivityViewController 中为不同的服务提供不同的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16570472/

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