2013-11-24 5 views
2

Возможно ли использовать различные элементы деятельности для каждой деятельности в UIActivityViewController? Например, у меня есть следующий код:Различные виды деятельности для отдельных видов деятельности в UIActivityViewController

NSArray *objectsToShare = @[schemeURL, wordedString]; 
controller = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil]; 

// Exclude all activities except AirDrop. 
NSArray *excludedActivities = @[UIActivityTypePostToTwitter, 
            UIActivityTypePostToWeibo, 
            UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, 
            UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr, 
            UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo]; 
controller.excludedActivityTypes = excludedActivities; 
[self presentViewController:controller animated:YES completion:nil]; 

Я хочу, чтобы установить данные для отправки на Facebook в wordedString собственности и установить данные для отправки через десантный свойству schemeURL. Это возможно? Заранее спасибо.

+0

Можете ли вы подтвердить, если это работает для вас? – Bonnke

ответ

2

Вы можете создать подкласс UIActivityItemProvider и следующий метод может быть использован для проверки типа активности .. попробовать его

//- Returns the data object to be acted upon. (required) 
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType 
{ 
if ([activityType isEqualToString:UIActivityTypePostToFacebook]) { 
    NSString *theText = @"Some text for Facebook"; 
    return theText; 
} 

if ([activityType isEqualToString:UIActivityTypePostToTwitter]) { 
    NSString *theText = @"Some text for Twitter"; 
    return theText; 
} 

if ([activityType isEqualToString:UIActivityTypePostToWeibo]) { 
    NSString *theText = @"Some text for Weibo"; 
    return theText; 
} 

if ([activityType isEqualToString:UIActivityTypeMail]) { 
    NSString *theText = _someText; 
    return theText; 
} 

if ([activityType isEqualToString:kYourCustomMailType]) { 
    NSString *theText = @"Some text for your Custom Type"; 
    return theText; 
    } 

return @"Some default text"; 

}

+2

Подкласс UIActivityItemProvider - это прежде всего, когда вы хотите, чтобы «предоставление общего элемента было асинхронным». Если вы хотите только настроить полезную нагрузку на одну активность, вам следует создать объект, соответствующий протоколу UIActivityItemSource. – ccjensen

+0

@ the1pawan Привет, пожалуйста, подтвердите, если это сработало для вас? – Bonnke

Смежные вопросы