2014-07-16 1 views
1

UIActivityViewController을 (를) 통해 this과 (과) 비슷한 이미지를 공유하려고합니다. 그러나 여러 이미지를 공유하면 Twitter와 Facebook은 UIActivityViewController에서 사라집니다.여러 이미지를 공유하는 UIActivityViewController

Twitter 및 Facebook 용으로 하나의 이미지를 공유 할 수있는 방법이 있습니까? 첨부 파일로 여러 이미지를 메일로 보낼 수 있습니까?

편집 :

// return different string depends on the type 
CustomActivityItemProvider *textProvider = [[CustomActivityItemProvider alloc] initWithText:textContent url:url title:textTitle]; 

NSMutableArray *applicationActivities = [NSMutableArray array]; 
NSMutableArray *activityItems = [@[ 
            textProvider, 
            image, 
            url 
            ] mutableCopy]; 

// custom applicationActivities 
... 

// If add multiple images, facebook and twitter will not show up 
for(int i = 0; i < [images count]; ++i) 
{ 
    if(images[i] != image) [activityItems addObject:images[i]]; 
} 

UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems 
                       applicationActivities:applicationActivities]; 

[activityController setValue:textTitle forKey:@"subject"]; 
activityController.excludedActivityTypes = excludeActivities; 

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

는 방법은 UIActivityItemProvider 유사 있습니까?

+0

이 지금까지 시도 어떤 코드를 보여

ImageActivityItemProvider.h

#import <UIKit/UIKit.h> @interface ImageActivityItemProvider : UIActivityItemProvider @property (nonatomic, strong, readonly) UIImage *image; @property (nonatomic, readonly) NSInteger index; @property (nonatomic, readonly) NSInteger shouldShowIndex; - (instancetype)initWithImage:(UIImage*)image index:(NSInteger)index shouldShowIndex:(NSInteger)shouldShowIndex; @end 

ImageActivityItemProvider.m를? – karthikeyan

+0

샘플 코드를 추가했습니다, 감사합니다 – siutsin

+0

이 링크 시도 http://stackoverflow.com/questions/12984403/uiactivityviewcontroller-email-and-twitter-sharing – karthikeyan

답변

0

내가 사용하게 한 textActivityItemProvider에 유사한 방법 :

#import "ImageActivityItemProvider.h" 

@interface ImageActivityItemProvider() 

@property (nonatomic, strong) UIImage *image; 
@property (nonatomic) NSInteger index; 
@property (nonatomic) NSInteger shouldShowIndex; 

@end 

@implementation ImageActivityItemProvider 

- (instancetype)initWithImage:(UIImage*)image index:(NSInteger)index shouldShowIndex:(NSInteger)shouldShowIndex 
{ 
    // make sure the placeholder is nil instead of the image 
    self = [super initWithPlaceholderItem:nil]; 
    if (self) 
    { 
     self.image = image; 
     self.index = index; 
     self.shouldShowIndex = shouldShowIndex; 
    } 
    return self; 
} 

- (id)item 
{ 
    if (
     [self.activityType isEqualToString:UIActivityTypeMail] || 
     self.index == self.shouldShowIndex 
     ) 
    { 
     return self.image; 
    } 
    return self.placeholderItem; 
} 

@end