UIActivityViewController在iOS 7中缺少选项

时间:2013-10-12 13:50:49

标签: ios objective-c facebook ios7 uiactivityviewcontroller

我在iOS 6 SDK中使用以下代码来实现UIActivityViewController:

-(IBAction)Share:(id)sender
{    
    NSArray *activityItems = @[self.title, urlString];
    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];

      [self presentViewController:activityVC animated:YES completion:nil];


    [activityVC setCompletionHandler:^(NSString *activityType, BOOL completed)
     {
         NSLog(@"Activity = %@",activityType);
         NSLog(@"Completed Status = %d",completed);

         if (completed)
         {
             UIAlertView *objalert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Successfully Shared" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
             [objalert show];
             objalert = nil;
         } else
         {
             UIAlertView *objalert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Unable To Share" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
             [objalert show];
             objalert = nil;
         }
     }];
}

iOS 7中的上述代码给出了以下输出:

ios share facebook twitter uoactivityviewcontroller

早些时候,在分享表中没有Facebook和Twitter,但我在设置和Facebook上签署了这两个应用程序,Twitter开始出现。

问题: Belo行,只有COPY和其他类似BOOKMARK,添加到阅读列表,添加到HOMESCREEN,PRINT和AirDrop按钮都没有显示出来。我能做些什么呢?谢谢!

更新:我已经使用下面的一个答案添加了打印按钮,我该如何添加其余的?

3 个答案:

答案 0 :(得分:4)

书签,添加到阅读列表和添加到主屏幕仅在Safari中可用,除非您自己定义它们。要添加这些按钮,您需要创建applicationActivities NSArray,并使用UIActivity对象填充各种服务。您可以将此数组传递到initWithActivityItems:applicationActivities: UIActivityViewController方法(您为此参数传递了nil)。

答案 1 :(得分:3)

您应该使用UISimpleTextPrintFormatter来显示PRINT:

UISimpleTextPrintFormatter *printData = [[UISimpleTextPrintFormatter alloc]
                                             initWithText:self.title];
NSArray *activityItems = @[self.title, printData];

关注@Arkadiusz Holko和@Santa Claus回答添加其他功能。

答案 2 :(得分:1)

如果希望将元素视为URL,则应使用NSURL对象而不是NSString。替换:

NSArray *activityItems = @[self.title, urlString];

NSArray *activityItems = @[self.title, [NSURL URLWithString:urlString]];

如果您希望Add to Reading List以外的元素可见,请遵循@Santa Claus的建议。