Search code examples
iosobjective-cuiactionsheet

How to set imageview in UIActionSheet in iOS


In my application having sharing option so i want to open that sharing option in Actionsheet. how how to achieve this functionality?

NSArray * itemsArray = @[@"www.google.com", @"Google", @"5.png"]; // Anything you want to share
NSArray * applicationActivities = nil;

UIActivityViewController * activityViewController = [[UIActivityViewController alloc] initWithActivityItems:itemsArray applicationActivities:applicationActivities];

if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0"))
{
     activityViewController.popoverPresentationController.sourceView = self.view;
}
[self presentViewController:activityViewController animated:YES completion:nil];

i want to assign my own custom image, link and text so how to achieve this

enter image description here


Solution

  • Why don't you use an UIActivityViewController instead? So the system can handle where to share it:

    #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
    
    
    UIImage * image = [UIImage imageNamed:@"yourimage.png"];
    NSArray * itemsArray = @[image]; // Anything you want to share
    
    
        NSArray * applicationActivities = nil;
    
        UIActivityViewController * activityViewController = [[UIActivityViewController alloc] initWithActivityItems:itemsArray applicationActivities:applicationActivities];
    
        activityViewController.excludedActivityTypes = @[
                                                         UIActivityTypePostToWeibo,
                                                         UIActivityTypeAssignToContact,
                                                         UIActivityTypeAirDrop,
                                                         UIActivityTypeAddToReadingList
                                                         // Whatever you want to exclude
                                                         ];
    
        if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")){
            activityViewController.popoverPresentationController.sourceView = self.view;
        }
    
        [self presentViewController:activityViewController animated:YES completion:nil];