UIActivityViewController передает различные данные обмена

Я искал UIActivityViewController, чтобы поделиться другой строкой или изображением с другим типом вида деятельности, например, для параметра "Печать" или "Общий доступ" (facebook, twitter).

Но не было никакой возможности сделать это. Пожалуйста посоветуй.

Спасибо!

2 ответа

Попробуйте этот код

-(void)shareContent{

NSString * message = @"My too cool Son";

UIImage * image = [UIImage imageNamed:@"boyOnBeach"];

NSArray * shareItems = @[message, image];

UIActivityViewController * avc = [[UIActivityViewController alloc] initWithActivityItems:shareItems applicationActivities:nil];

[self presentViewController:avc animated:YES completion:nil];

}

Вы можете сделать это с помощью UIActivityItemProvider

в.h файле

@interface APActivityProvider : UIActivityItemProvider <UIActivityItemSource>

@end

в.m файле

@implementation APActivityProvider

- (id) activityViewController:(UIActivityViewController *)activityViewController
          itemForActivityType:(NSString *)activityType {
     if ( [activityType isEqualToString:UIActivityTypePostToFacebook] )
        return @"This is a facebook post!";
    if ( [activityType isEqualToString:UIActivityTypeMessage] )
        return @"SMS message text";
    if ( [activityType isEqualToString:UIActivityTypeMail] )
        return @"Email text here!";

}

- (void) shareAppData  {
     APActivityProvider *ActivityProvider = [[APActivityProvider alloc] initWithPlaceholderItem: @“”];
     NSArray *Items = @[ActivityProvider];


     UIActivityViewController *ActivityView = [[UIActivityViewController alloc]
                                               initWithActivityItems:Items
                                               applicationActivities:nil];

     [ActivityView setValue:@“Title for email” forKey:@"subject"];

     [self presentViewController:ActivityView animated:YES completion:nil];

     [ActivityView setCompletionHandler:^(NSString *act, BOOL done)
     {
         NSString *ServiceMsg = nil;
         if ( [act isEqualToString:UIActivityTypeMail] ) 
           ServiceMsg = @"Mail sended!";
         if ( [act isEqualToString:UIActivityTypePostToTwitter] )  
        ServiceMsg = @"Post on twitter, ok!";
         if ( [act isEqualToString:UIActivityTypePostToFacebook] ) 
        ServiceMsg = @"Post on facebook, ok!";
         if ( [act isEqualToString:UIActivityTypeMessage] )        
        ServiceMsg = @"SMS sended!";

         if (done)
         {
             UIAlertView *Alert = [[UIAlertView alloc] initWithTitle:ServiceMsg message:@"" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil];
             [Alert show];
         }
     }];
}
Другие вопросы по тегам