I was looking for UIActivityViewController to share different string or image with different type of activity type i.e. for Print option, sharing option (facebook, twitter).
But didn't get any option to do that. Please advice.
Thanks!
I was looking for UIActivityViewController to share different string or image with different type of activity type i.e. for Print option, sharing option (facebook, twitter).
But didn't get any option to do that. Please advice.
Thanks!
Try this Code
-(void)shareContent{
NSString * message = @"My too cool Son";
UIImage * image = [UIImage imageNamed:@"boyOnBeach"];
NSArray * shareItems = @[message, image];
UIActivityViewController * avc = [[UIActivityViewController alloc] initWithActivityItems:shareItems applicationActivities:nil];
[self presentViewController:avc animated:YES completion:nil];
}
You can do this using UIActivityItemProvider
in .h File
@interface APActivityProvider : UIActivityItemProvider <UIActivityItemSource>
@end
in .m file
@implementation APActivityProvider
- (id) activityViewController:(UIActivityViewController *)activityViewController
itemForActivityType:(NSString *)activityType {
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!";
}
- (void) shareAppData {
APActivityProvider *ActivityProvider = [[APActivityProvider alloc] initWithPlaceholderItem: @“”];
NSArray *Items = @[ActivityProvider];
UIActivityViewController *ActivityView = [[UIActivityViewController alloc]
initWithActivityItems:Items
applicationActivities:nil];
[ActivityView setValue:@“Title for email” forKey:@"subject"];
[self presentViewController:ActivityView animated:YES completion:nil];
[ActivityView setCompletionHandler:^(NSString *act, BOOL done)
{
NSString *ServiceMsg = nil;
if ( [act isEqualToString:UIActivityTypeMail] )
ServiceMsg = @"Mail sended!";
if ( [act isEqualToString:UIActivityTypePostToTwitter] )
ServiceMsg = @"Post on twitter, ok!";
if ( [act isEqualToString:UIActivityTypePostToFacebook] )
ServiceMsg = @"Post on facebook, ok!";
if ( [act isEqualToString:UIActivityTypeMessage] )
ServiceMsg = @"SMS sended!";
if (done)
{
UIAlertView *Alert = [[UIAlertView alloc] initWithTitle:ServiceMsg message:@"" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil];
[Alert show];
}
}];
}