2015-06-08 17 views
7

Sto cercando di utilizzare UIActivityViewController per condividere URL diversi per ogni articolo. per esempio. Per Twitter: www.google.com; Per Facebook: www.bing.comcome condividere diversi URL tramite uiactivityviewcontroller?

So che posso personalizzare il testo per ognuno ma non riesco a trovare un modo per personalizzare l'URL per ognuno.

Ho provato sottoclasse UIActivityItemProvider ma non ha funzionato:

FILE .m

- (id)initWithText:(NSString *)text{ 

if ((self = [super initWithPlaceholderItem:text])) { 
    self.text = text ?: @""; 
    self.url = @""; 
} 
    return self; 
} 

- (id)item { 
    NSString *activityType = self.activityType; 

    if ([self.placeholderItem isKindOfClass:[NSString class]]) { 

     if ([self.activityType isEqualToString:UIActivityTypePostToFacebook]) { 

      self.url = kSHARELINK_FB; 

     } else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) { 

      self.url = kSHARELINK_TWITTER; 


     } else if ([activityType isEqualToString:UIActivityTypeMessage]) { 

      self.url = kSHARELINK_SMS; 


      } else if([activityType 

isEqualToString:UIActivityTypeMail]){ 
      self.url = kSHARELINK_EMAIL; 


     }else if ([activityType 

isEqualToString:UIActivityTypePostToWeibo]){ 
      self.url = kSHARELINK_WEIBO; 

     }else{ 

      self.url = kSHARELINK_OTHER; 

     } 
    } 

    return self.placeholderItem; 
} 

file h

@interface LLCustomActivityItemProvider : UIActivityItemProvider 

@property (copy, nonatomic) NSString *text; 
@property (copy, nonatomic) NSString *url; 

- (id)initWithText:(NSString *)text; 

risposta

3

Si scopre che mi mancava un return self.url; ...

- (id)item { 
    NSString *activityType = self.activityType; 

    if ([self.placeholderItem isKindOfClass:[NSString class]]) { 

     if ([self.activityType isEqualToString:UIActivityTypePostToFacebook]) { 

      self.url = kSHARELINK_FB; 

     } else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) { 

      self.url = kSHARELINK_TWITTER; 


     } else if ([activityType isEqualToString:UIActivityTypeMessage]) { 

      self.url = kSHARELINK_SMS; 


      } else if([activityType isEqualToString:UIActivityTypeMail]){ 
      self.url = kSHARELINK_EMAIL; 


     }else if ([activityType isEqualToString:UIActivityTypePostToWeibo]){ 
      self.url = kSHARELINK_WEIBO; 

     }else{ 

      self.url = kSHARELINK_OTHER; 

     } 
     return self.url; 
    } 

    return self.placeholderItem; 
} 
Problemi correlati