как обмениваться разными URL-адресами через uiactivityviewcontroller?

Я пытаюсь использовать UIActivityViewController для разных URL-адресов для каждого элемента. например Для твиттера: www.google.com; Для Facebook: www.bing.com

Я знаю, что могу настроить текст для каждого из них, но я не могу найти способ настроить URL-адрес для каждого из них.

Я пробовал создать подкласс UIActivityItemProvider, но это не сработало:

ФАЙЛ .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;
}

ФАЙЛ .h

 @interface LLCustomActivityItemProvider : UIActivityItemProvider

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

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

person jonypz    schedule 08.06.2015    source источник


Ответы (1)


Оказывается, мне не хватило 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;
}
person jonypz    schedule 13.06.2015