UIActivityViewController和自定义应用程序

时间:2013-04-15 06:37:31

标签: ios objective-c uiactivityviewcontroller

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

- (IBAction)share:(id)sender {

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

}

2 个答案:

答案 0 :(得分:3)

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

我在其中一个应用中执行的操作是创建一个“打开”自定义UIActivity。如果用户选择该活动,则我使用UIDocumentInteractionController显示标准的“打开”菜单。这允许iOS显示任何可以打开图像的应用程序。

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

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

答案 1 :(得分:1)

查看此博客post。 简而言之,您必须为要在活动视图控制器中显示的每个附加应用程序子类化UIActivity,并将其实例作为参数applicationActivities:的NSArray传递。

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

  

子类注释

     

在使用之前,必须对该类进行子类化。活动对象的工作是对提供给它的数据进行操作,并提供iOS可以向用户显示的一些元信息。对于更复杂的服务,活动对象还可以显示自定义用户界面,并使用它来从用户收集其他信息。

     

覆盖的方法

     

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

     

activityType

     

activityTitle

     

activityImage

     

canPerformWithActivityItems:

     

prepareWithActivityItems: