我将activityViewController添加到我的应用程序,如下图所示,传入图像
UIActivityViewController *avc = [[UIActivityViewController alloc]initWithActivityItems:[NSArray arrayWithObjects:img,nil] applicationActivities:[NSArray arrayWithObjects:nil]];
[self presentModalViewController:avc animated:YES];
[avc release];
在模拟器上(所有未配置的推特,脸书和微博账号):
默认情况下,选项邮件,推特,脸书,微博,分配给联系人,保存到相机胶卷,打印和复印。
但在设备上:
在我的应用程序中:twitter,facebook和weibo仅显示帐户是否已配置。
在safari中:无论是否配置了帐户,都可以使用Twitter,facebook和微博选项。
我期待我的应用程序中的行为与safari相同。我错过了一个特定的步骤吗?
答案 0 :(得分:2)
好的,我已经解决了这个问题。
UIActivityViewController中显示的选项完全取决于要共享的项目类型。例如,如果有视频,则不会显示Facebook或Twitter选项。但如果它是一个图像和标题,它肯定会显示相关的选项。
以下内容将显示邮件,推特,Facebook,assignToContact等应用,保存到相机胶卷,打印,复印等
// Create the content
NSString *message = @"The Upcoming App Scribble Talk";
UIImage *imageToShare = [UIImage imageNamed:@"createbtn.png"];
NSArray *objectsToShare = [NSArray arrayWithObjects:message, image, nil];
但是,以下内容仅提供相机胶卷,邮件或复印件。
NSString *message = @"The Upcoming App Scribble Talk";
NSString *videoToShare = @"myFirsScribble.mov";
NSURL *videoPath = [NSURL fileURLWithPath:videoToShare];
NSArray *objectsToShare = [NSArray arrayWithObjects:message, videoPath, nil];
答案 1 :(得分:0)
我认为您只想在UIActivityViewController中显示某些特定服务。您可以将一个名为excludedActivityTypes
的属性定义如下,以避免某些默认活动。
UIActivityViewController *yourvc = [[UIActivityViewController alloc]initWithActivityItems:[NSArray arrayWithObjects:img,nil] applicationActivities:[NSArray arrayWithObjects:nil]];
yourvc.excludedActivityTypes = @[UIActivityTypePostToWeibo,UIActivityTypePrint,UIActivityTypeMail,UIActivityTypeCopyToPasteboard];//Try this code in simulator.. you can only see FB & Twitter.
[self presentModalViewController:yourvc animated:YES];
[avc release];
同样可以从默认的UIActivityViewController中排除..