我正在尝试导出图片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];
}
答案 0 :(得分:3)
您需要使用applicationActivities
参数并传入任何其他自定义活动。
我在其中一个应用中执行的操作是创建一个“打开”自定义UIActivity
。如果用户选择该活动,则我使用UIDocumentInteractionController
显示标准的“打开”菜单。这允许iOS显示任何可以打开图像的应用程序。
另一个选择是您可以添加多个自定义活动,每个活动对应您希望支持的每个特定应用。
在iOS 6.0发布后不久,我向Apple提交了一项增强请求,以直接支持活动视图中的“打开”类型功能。
答案 1 :(得分:1)
查看此博客post。
简而言之,您必须为要在活动视图控制器中显示的每个附加应用程序子类化UIActivity,并将其实例作为参数applicationActivities:
的NSArray传递。
Apple文档中有关UIActivity子类的摘录:
子类注释
在使用之前,必须对该类进行子类化。活动对象的工作是对提供给它的数据进行操作,并提供iOS可以向用户显示的一些元信息。对于更复杂的服务,活动对象还可以显示自定义用户界面,并使用它来从用户收集其他信息。
覆盖的方法
进行子类化时,必须始终覆盖以下方法并使用它们来提供有关服务的信息:
activityType
activityTitle
activityImage
canPerformWithActivityItems:
prepareWithActivityItems: