【问题标题】:UIActivityViewController In iOS 7 Missing OptionsiOS 7 中的 UIActivityViewController 缺少选项
【发布时间】:2013-10-12 13:50:49
【问题描述】:

我在 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 中的上述代码给了我以下输出:

之前分享表中没有 Facebook 和 Twitter,但我在“设置”中同时登录了这两个应用程序,Facebook 和 Twitter 开始出现。

问题: 下线,只有复制和其他像书签,添加到阅读列表,添加到主屏幕,打印和 AirDrop 按钮没有显示。我能做些什么来带这些?谢谢!

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

【问题讨论】:

    标签: ios objective-c facebook ios7 uiactivityviewcontroller


    【解决方案1】:

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

    【讨论】:

    • 你能用添加所有这些的代码更新你的答案吗?我通过从这个问题的另一个答案中获得帮助来添加打印按钮。谢谢!
    • @AJ112 添加到阅读列表会在您关注@ArkadiuszHolko 的回答时自动添加。这也可能会添加“添加到主屏幕”,但我不确定。这些共享选项可能仅在 Safari 中可用。您应该能够使用NSURLNSString 或许多其他数据类型(如图像)填充activityItems,然后菜单中将出现其他选项。
    • 好的,我已经使用了该答案,并且出现了“添加到阅读列表”。打印也有关于这个问题的其他答案。只剩下书签和添加到主屏幕。我怎么能带那些?谢谢!
    • @AJ112 我认为这些在 safari 以外的应用程序中是不可能的
    • 是的,我的错。打印并添加到阅读列表就足够了。我已经提供了一个应用程序,在主屏幕上添加它没有任何意义,因为该应用程序已经存在。谢谢!
    【解决方案2】:

    你应该使用 UISimpleTextPrintFormatter 来显示 PRINT:

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

    按照@Arkadiusz Holko 和@Santa Claus 的回答添加其他功能。

    【讨论】:

    • 好的,我用您提供的代码添加了打印按钮。我怎样才能添加其余的?你能更新你的答案吗?谢谢!
    • 将 UIActivityTypeAddToReadingList 添加到数组中
    【解决方案3】:

    当您希望将元素视为 URL 时,应使用 NSURL 对象而不是 NSString。替换:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-19
      • 2014-02-16
      • 2015-12-07
      • 2014-05-31
      • 1970-01-01
      • 2017-01-16
      • 1970-01-01
      • 2017-04-29
      相关资源
      最近更新 更多