How to display the default iOS 6 share action sheet with available share options?
The UIActivityViewController stated in the other answer makes this trivial. All you have to do is specify the text/image/URL that you want to share and present the activity view controller modally and iOS will automatically display all applicable sharing services. Examples:
Objective-C
- (void)shareText:(NSString *)text andImage:(UIImage *)image andUrl:(URL *)url{ NSMutableArray *sharingItems = [NSMutableArray new]; if (text) { [sharingItems addObject:text]; } if (image) { [sharingItems addObject:image]; } if (url) { [sharingItems addObject:url]; } UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil]; [self presentViewController:activityController animated:YES completion:nil];}
Swift
func share(sharingText: String?, sharingImage: UIImage?, sharingURL: URL?) { let sharingItems:[AnyObject?] = [ sharingText as AnyObject, sharingImage as AnyObject, sharingURL as AnyObject ] let activityViewController = UIActivityViewController(activityItems: sharingItems.compactMap({$0}), applicationActivities: nil) if UIDevice.current.userInterfaceIdiom == .pad { activityViewController.popoverPresentationController?.sourceView = view } present(activityViewController, animated: true, completion: nil)}
Add this to use the UIActivityViewController
.
-(IBAction)shareButtonPressed:(id)sender { NSLog(@"shareButton pressed"); NSString *texttoshare = _txt; //this is your text string to share UIImage *imagetoshare = _img; //this is your image to share NSArray *activityItems = @[texttoshare, imagetoshare]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint]; [self presentViewController:activityVC animated:TRUE completion:nil];}