Ios UIActivityController在设备和模拟器上的行为不同

Ios UIActivityController在设备和模拟器上的行为不同,ios,facebook,twitter,ios6,weibo,Ios,Facebook,Twitter,Ios6,Weibo,我将activityViewController添加到我的应用程序中,如下所示,并传入一个图像 UIActivityViewController *avc = [[UIActivityViewController alloc]initWithActivityItems:[NSArray arrayWithObjects:img,nil] applicationActivities:[NSArray arrayWithObjects:nil]]; [self presentModa

我将activityViewController添加到我的应用程序中,如下所示,并传入一个图像

UIActivityViewController *avc = [[UIActivityViewController alloc]initWithActivityItems:[NSArray arrayWithObjects:img,nil] applicationActivities:[NSArray arrayWithObjects:nil]];
        [self presentModalViewController:avc animated:YES];
        [avc release];
在模拟器上(twitter、facebook和微博帐户均未配置):

默认情况下,会显示邮件、推特、facebook、微博、分配给联系人、保存到相机、打印和复制选项

但在设备上:

在我的应用程序中:twitter、facebook和weibo仅显示帐户是否已配置

在safari:twitter、facebook和微博中,无论账户是否配置,都可以使用这些选项


我希望我的应用程序中的行为与safari相同。我是否遗漏了某个特定步骤?

我认为您只想在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中排除

好的,我已经解决了问题

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];

对不起,我想我应该说清楚一点。我希望twitter、facebook和微博选项在应用程序中、设备上可用,即使用户在设置中没有链接到设备的帐户。即使帐户没有配置设备,OVE代码也会提供这些选项。这在模拟器上工作(但模拟器上的行为一开始是正确的),但不是在设备上。对于您来说,在设备上,如果没有配置facebook帐户,activitycontroller中是否有facebook选项?当然,如果没有配置任何帐户,activityviewController中将提供facebook、twitter或微博。您可以排除除这三个选项之外的所有选项。并在设备上启动您的应用程序。您只能在应用程序上看到这三个选项。我敢肯定。它应该会起作用。不幸的是,我无法在电话或同事中观察到这一点:(