2

我正在尝试导出图像 viUIActivityViewController我想知道如何添加更多应用程序,如 Instagram 或其他照片编辑应用程序?

- (IBAction)share:(id)sender {

    NSArray* dataToShare = @[_image.image]; 
    UIActivityViewController* activityViewController =
    [[UIActivityViewController alloc] initWithActivityItems:dataToShare
                                      applicationActivities:nil];
    [self presentViewController:activityViewController animated:YES completion:nil];

}
4

2 回答 2

3

您需要使用该applicationActivities参数并传入任何其他自定义活动。

我在我的一个应用程序中所做的是创建一个“打开方式”自定义UIActivity。如果用户选择了该活动,我将使用它UIDocumentInteractionController来显示标准的“打开方式”菜单。这允许 iOS 显示任何可以打开图像的应用程序。

另一种选择是您可以添加多个自定义活动,一个用于您希望支持的每个特定应用程序。

在 iOS 6.0 发布后不久,我向 Apple 提交了一个增强请求,以在活动视图中直接支持“打开方式”类型的功能。

于 2013-04-15T06:48:05.763 回答
1

看看这篇博文简而言之,您必须为要在活动视图控制器中显示的每个附加应用程序子类化 UIActivity,并将它们的实例作为 NSArray 传递给 parameter applicationActivities:

Apple 文档中有关 UIActivity 子类的摘录:

子类化注释

此类必须先被子类化,然后才能使用。活动对象的工作是对提供给它的数据进行操作,并提供一些 iOS 可以向用户显示的元信息。对于更复杂的服务,活动对象还可以显示自定义用户界面并使用它从用户那里收集附加信息。

覆盖的方法

子类化时,您必须始终覆盖以下方法并使用它们来提供有关您的服务的信息:

活动类型

活动标题

活动图片

canPerformWithActivityItems:

准备活动项目:

于 2013-04-15T06:57:13.627 回答