2015-06-08 61 views
7

Próbuję użyć UIActivityViewController udostępnić różne adresy URL dla każdego elementu. na przykład Dla Twittera: www.google.com; Na Facebooku: www.bing.comjak udostępniać różne adresy URL za pomocą interfejsu uiactivityviewcontroller?

Wiem, że mogę dostosować tekst do każdego z nich, ale nie mogę znaleźć sposobu na dostosowanie adresu URL do każdego z nich.

Próbowałem instacji UIActivityItemProvider ale nie wyszło:

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

PLIK .h

@interface LLCustomActivityItemProvider : UIActivityItemProvider 

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

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

Odpowiedz

3

Okazuje się, że brakowało 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; 
}