ios - UIActivityViewController 中各个 Activity 事件的不同 Activity 项目

标签 ios iphone objective-c 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 属性,并将通过 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/

相关文章:

iphone - 在 cocoa 中不使用界面生成器的情况下调用 uibutton 的操作方法

ios - IAP收据验证网址?

ios - 访问钥匙串(keychain)中的所有(用户)帐户

iphone - 将 UIView 添加到 UIButton subview 可防止触摸事件

objective-c - beginTrackingWithTouch 和 touchesBegan 之间有什么区别?

ios - 不同UIViewController的调用方法

ios - 使用未声明的类型 'XCTestCaseEntry'

ios - 尝试使用 Firebase 后端创建排行榜并对数据进行排序无法正确检索数据(Swift 4.2)

iphone - 按下按钮时切换到另一个 View

iphone - Google Directions API 折线未添加到 map