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.h
into your project:#import "RDActivityViewController.h";
-
Set your class as a
RDActivityViewControllerDelegate
delegate:... @interface MyClass : NSObject <RDActivityViewControllerDelegate> ...
-
Implement the required
activityViewController:activityViewController itemsForActivityType:activityType
method in the delegate. You should always return anNSArray
of 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];