UIActivityViewController & UIDocumentInteractionController not showing options

ios, objective-c, uiactivityviewcontroller

Solution

As @rmaddy said, you should use `UIDocumentInteractionController` to replace `UIActivityViewController`, just like this:

UIDocumentInteractionController *dc = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:fileNameStr]];
[dc presentOptionsMenuFromRect:self.view.bounds inView:self.view animated:YES];

Problem

I am new to UIActivityViewController and perhaps I am missing a basic understanding. What I am trying to do is attached a csv, xml and vcard file to activity controller and show dropbox, google drive etc options. I have downloaded and installed dropbox, google drive etc apps on my iPhone. Now when I launch UIActivityViewController all I see are default message and email app in my acitivity controller. How can I have other apps show up on their too? Do I need to install each and every apps individual SDKs and somehow incorporate them in my app? This is what I wold like to see but this is what I see instead. Here's the code that I have tried so far ``` -(IBAction) dropBoxAction { paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask ,YES); NSString* documentsPath = [paths objectAtIndex:0]; //CSV NSMutableString *fileNameStr = [NSMutableString stringWithFormat:@"test_CSV_Backup.csv"]; NSString* csvDataFileStr = [documentsPath stringByAppendingPathComponent:fileNameStr]; NSData *csvData = [NSData dataWithContentsOfFile:csvDataFileStr]; //EXCEL NSMutableString *fileNameStr2 = [NSMutableString stringWithFormat:@"test_EXCEL_Backup.xml"]; NSString* excelDataFileStr = [documentsPath stringByAppendingPathComponent:fileNameStr2]; NSData *excelData = [NSData dataWithContentsOfFile:excelDataFileStr]; //VCARD NSMutableString *fileNameStr3 = [NSMutableString stringWithFormat:@"test_VCARD_Backup.vcf"]; NSString* vcardDataFileStr = [documentsPath stringByAppendingPathComponent:fileNameStr3]; NSData *vcardData = [NSData dataWithContentsOfFile:vcardDataFileStr]; //adding them all together NSMutableArray *sharingItems = [NSMutableArray new]; [sharingItems addObject:csvData]; [sharingItems addObject:excelData]; [sharingItems addObject:vcardData]; UIActivity *activity = [[UIActivity alloc] init]; NSArray *applicationActivities = @[activity]; UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:applicationActivities]; [self presentViewController:activityController animated:YES completion:nil]; } ```

Original source