This is a simple override of UIActivityViewController which makes it easier to set multiple items for each UIActivityType.
-
Add all files into your Xcode project.
-
Import
RDActivityViewController.hinto your project:#import "RDActivityViewController.h"; -
Set your class as a
RDActivityViewControllerDelegatedelegate:... @interface MyClass : NSObject <RDActivityViewControllerDelegate> ... -
Implement the required
activityViewController:activityViewController itemsForActivityType:activityTypemethod in the delegate. You should always return anNSArrayof activityItems:- (NSArray *)activityViewController:(NSArray *)activityViewController itemsForActivityType:(NSString *)activityType { if ([activityType isEqualToString:UIActivityTypeMail]) { return @[ @"This is the message which appears", @"...in the mail sharing dialog.", [UIImage imageName:@"an-image.png"] ]; } else { return @[@"Default message"]; } } -
And finally, create the RDActivityViewController:
RDActivityViewController *viewController = [[RDActivityViewController alloc] initWithDelegate:self];