在UIActivityViewController ios中为不同的不同服务设置不同的活动项目

时间:2014-01-28 06:23:22

标签: ios uiactivityviewcontroller

为了分享内容,我使用UIActivityViewController为此我已经将UIActivityProvider子类化了 为不同的服务提供不同的内容。

我在ActivityProvider中返回数组ActivityItems但是数组变为零。 我想分享字符串和网址。

//我的子类代码是

-@implementation ActivityProvider
- (id) activityViewController:(UIActivityViewController *)activityViewController
      itemForActivityType:(NSString *)activityType
{

if ( [activityType isEqualToString:UIActivityTypePostToTwitter] )
{
    NSArray * activityItems = @[[NSString stringWithFormat:@"Some initial text."], [NSURL URLWithString:@"http://www.google.com"]];
    return activityItems;
}
if ( [activityType isEqualToString:UIActivityTypePostToFacebook] )
    return @"This is a facebook post!";
if ( [activityType isEqualToString:UIActivityTypeMessage] )
    return @"SMS message text";
if ( [activityType isEqualToString:UIActivityTypeMail] )
    return @"Email text here!";
if ( [activityType isEqualToString:@"it.albertopasca.myApp"] )
    return @"OpenMyapp custom text";
return nil;
}

- (id) activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController { return @""; }

有没有办法为邮件设置主题和正文。

1 个答案:

答案 0 :(得分:0)

您可以通过实施

为您的电子邮件提供主题
- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType;

在符合UIActivityItemSource协议的类中。有关详细信息,请参阅the documentation