检测 UIActivityViewController 中将选择哪个 activity

Detect which activity will be selected in UIActivityViewController

我计划使用 UIActivityViewController 将文本分享到推特等。我需要将不同的文本分享到推特、电子邮件等。因此,我需要根据用户选择动态更改文本。我可以知道一个办法吗?

我知道这样的方法。但只有在操作完成后,我才能更改文本。 UIActivityViewController - is there a way to know which activity was selected?

您可以实施 UIActivityItemSource 及其 itemForActivityType: 方法来提供与用户选择匹配的内容。

对此进行了解释on NSHipster。为了您的方便我copy/pasted相关的Objective-C代码和说明:

One example of how this could be used is to customize a message, depending on whether it's to be shared on Facebook or Twitter.

if ([activityType isEqualToString:UIActivityTypePostToFacebook]) {
    return NSLocalizedString(@"Like this!",nil);
} else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) {
    return NSLocalizedString(@"Retweet this!",nil);
} else {
    return nil;
}