是否可以为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
属性,并将通过 AirDrop 发送的数据设置为 schemeURL
属性。这可能吗?提前致谢。
最佳答案
您可以子类化 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";
}
关于ios - UIActivityViewController 中各个 Activity 事件的不同 Activity 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20176574/