2015-06-08 3 views
7

Ich versuche, UIActivityViewController verwenden verschiedene URLs für jedes Element zu teilen. z.B. Für Twitter: www.google.com; Für Facebook: www.bing.comWie teile ich verschiedene URLs über den uiactivityviewcontroller?

Ich weiß, dass ich den Text für jeden einzelnen anpassen kann, aber ich kann nicht scheinen, einen Weg zu finden, die URL für jeden einzelnen anzupassen.

Ich habe versucht Subklassen UIActivityItemProvider aber es heraus hat nicht funktioniert:

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; 
} 

Datei .h

@interface LLCustomActivityItemProvider : UIActivityItemProvider 

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

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

Antwort

3

Es stellt sich heraus, dass ich ein fehlte 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; 
} 
Verwandte Themen