0

我正在尝试使用 UIActivityViewController 从我的应用程序中共享图像。这是源代码:

UIImage *sourceImage = [[UIImage alloc] initWithContentsOfFile:[[self currentMedia] path]];
NSArray *activityItems = @[sourceImage];
UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
avc.excludedActivityTypes = [NSArray arrayWithObjects:UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, nil];
[self presentViewController:avc animated:YES completion:nil];
[avc release];
[sourceImage release];

一切正常,除了一个问题:我在服务选择器中看不到服务名称(电子邮件、Twitter、Facebook 等)。看下面的截图:

在此处输入图像描述

难道我做错了什么?

4

3 回答 3

1

我正在使用ARC并且没有这样的问题。就 UIActivityViewController 几乎不依赖多线程和阻塞而言,它可能会影响某些对象的生命周期。因此,我会尝试按照 Apple 的建议切换到 ARC,或者至少为UIActivityViewController.

于 2012-10-13T21:41:59.523 回答
0

如果您传递nil活动类型指定排除类型,则不会显示任何内容。

但是,如果您只传递nil第一个参数,所有可用的内置服务类型都会显示出来。

我仍然很难让这个 API 像我想要的那样运行,但这是我确实发现的一件事。

于 2012-10-12T19:21:56.987 回答
0

您可以为此目的使用UIActivity类。UIActivityViewControllerActivity 对象与负责向用户呈现服务的对象结合使用。

查看类activityTitle的方法,UIActivity它返回描述服务的字符串。

这是示例项目

希望它可以帮助你。

于 2012-10-13T05:46:11.190 回答