iOS  Tree

"All of us do not have equal talent. But , all of us have an equal opportunity to develop our talents.” – A.P.J Abdul Kalam

UIActivityViewController — October 20, 2017

UIActivityViewController

  • A view controller that you can use to offer various services from your app.
  • The system provides several standard services, such as copying items to the pasteboard, sharing content to social media sites, sending items via email or SMS, and more. Apps can also define custom services.
  • You can also specify the list of custom services your app supports.
  • Objective C:
    #pragma mark - Activity Sharing View Controller
    - (void)activitySharingViewController {
          NSString *forShare = [NSString stringWithFormat:@"some text to share"];
          UIActivityViewController *shareAction =
          [[UIActivityViewController alloc] initWithActivityItems:@[forShare] applicationActivities:nil];
          shareAction.excludedActivityTypes =@[UIActivityTypeAirDrop,
                                                                                      UIActivityTypeAssignToContact,
                                                                                      UIActivityTypeSaveToCameraRoll,
                                                                                      UIActivityTypePostToTwitter,
                                                                                      UIActivityTypePostToFacebook,
                                                                                      UIActivityTypeAddToReadingList
                                                                                      ];
          shareAction.completionWithItemsHandler =
          ^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError){
                if (completed){
                      if (activityType == UIActivityTypeCopyToPasteboard) {
                            NSLog(@"Copy to Pasteboard %@",activityType);
                      }
                }
          };
          [self presentViewController:shareAction animated:true completion:nil];
    }

    Swift 3:
    //MARK:- Activity Sharing View Controller
    func activitySharingViewController() {
          let shareText = "some text to share"
          let activityView : UIActivityViewController =
          UIActivityViewController.init(activityItems: [shareText], applicationActivities: nil)
          activityView.popoverPresentationController?.sourceView = self.view
          activityView.excludedActivityTypes = [.airDrop,
                                                                                    .assignToContact,
                                                                                    .saveToCameraRoll,
                                                                                    .addToReadingList,
                                                                                    .postToTwitter,
                                                                                    .postToFacebook]
          activityView.completionWithItemsHandler = { activity, success, items, error in
                print("activity take place \(activity)")
                if success {
                      if activity == UIActivityType.copyToPasteboard {
                            print("copy To Pasteboard \(shareText)")
                      }
                }
          }
          self.present(activityView, animated: true, completion: nil)
    }