首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用UIActivityItemProvider设置邮件主题

如何用UIActivityItemProvider设置邮件主题
EN

Stack Overflow用户
提问于 2015-01-21 14:48:01
回答 3查看 7K关注 0票数 7

我使用UIActivityViewController通过电子邮件共享信息。我们可以发送电子邮件与身体,附件没有问题。但是我们如何设置电子邮件的主题标题。

我注意到了这个问题:如何在UIActivityViewController中设置邮件主题?被接受的解决方案是使用UIActivityItemSource和下面的API activityViewController:subjectForActivityType:。但是,我们的代码不符合UIActivityItemSource,因为我们使用的是UIActivityItemProvider

UIActivityItemSource 您可以在以下情况下使用此协议:您希望从应用程序的现有对象中提供数据,而不是创建单独的UIActivityItemProvider对象。

因此,完整的问题是:

如果我使用的是UIActivityItemProvider 而不是UIActivityItemSource?,如何设置电子邮件主题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-21 16:37:45

定义自定义项提供程序:

代码语言:javascript
复制
@interface CustomProvider : UIActivityItemProvider
@end

在您的实现中添加:

代码语言:javascript
复制
@implementation CustomProvider

// Some other code ... -(id)item and etc. 

- (NSString *) activityViewController:(UIActivityViewController *)activityViewController
               subjectForActivityType:(NSString *)activityType
{
      return @"A dummy Title";
}

@end

注意,UIActivityItemProvider将自动遵守UIactivityItemSource协议。区别在于,您不必为@required协议实现那些UIactivityItemSource API。

票数 7
EN

Stack Overflow用户

发布于 2015-01-21 15:14:33

只需在实例化UIActivityViewController之后添加这一行:

代码语言:javascript
复制
[activityController setValue:@"Your email Subject" forKey:@"subject"];

我就是这样用的:

代码语言:javascript
复制
- (void)share {
    NSArray *activityItems;

    NSString *texttoshare = [NSString stringWithFormat:@"Hey bro! check this info.\n%@\n%@", self.infoBean.title, self.infoBean.desc];
    UIImage *imagetoshare = imageView.image;//this is your image to share

    if (imagetoshare != nil) {
    activityItems = @[imagetoshare, texttoshare];
    } else {
    activityItems = @[texttoshare];
    }
    NSArray *exTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeSaveToCameraRoll];


    UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    activityController.excludedActivityTypes = exTypes;


    [activityController setValue:@"Your email Subject" forKey:@"subject"];

    [self presentViewController:activityController animated:YES completion:nil];
}
票数 5
EN

Stack Overflow用户

发布于 2015-11-18 14:20:04

UIActivityItemProvider实现了UIActivityItemSource协议。就在头上。

代码语言:javascript
复制
@interface UIActivityItemProvider : NSOperation <UIActivityItemSource>

因此,您可以简单地使用- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType方法在UIActivityItemProvider子类中返回主题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28070038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档