【问题标题】:How to add different text to UIActivityViewController objects如何向 UIActivityViewController 对象添加不同的文本
【发布时间】:2012-10-23 14:58:59
【问题描述】:

我已经实现了一个 UIActivityViewController,用于分享一些信息。在这种情况下,我有一个问题:是否可以在 facebook 共享/twitter 共享/或邮件共享之间制作不同的文本?设置的文本与其他文本不同...

一个好的 UIActivityViewController 教程会非常有用。

我当时的代码是,用于显示文本和图像:

NSString *text = @"Lime Cat";
        UIImage *image = [UIImage imageNamed:@"MyApp Icon 512x512.png"];
        NSArray *items = [NSArray arrayWithObjects:text,image , nil];

但是我该如何管理 NSString 仅用于邮件,并为 facebook 共享选项制作单独的 NSString?

有什么建议吗?

谢谢。

【问题讨论】:

    标签: iphone objective-c ios


    【解决方案1】:

    你可以去下面的链接,有一个教程可以帮助你:

    https://www.albertopasca.it/whiletrue/objective-c-custom-uiactivityviewcontroller-icons-and-text/

    【讨论】:

    • 该链接现已失效。对于未来的答案,请考虑您的答案应该具有解决方案的要点,并且不应依赖任何链接。
    【解决方案2】:

    您可以让您的类符合UIActivityItemSource 协议并实现activityViewController:itemForActivityType:activityType 将是 FB、Twitter、消息应用等,因此您可以对其进行切换并根据活动返回不同的对象。

    【讨论】:

    • 这是更好的答案。请注意,activityType 不能切换,因为它是 NSString。只需使用 if/else。
    【解决方案3】:
    -(void)ShareImageandText:(UIButton *)sender    
    {
    

    NSString *texttoshare =@"http://qrs.ly/l851gh4";

    UIImage *image = [UIImage imageNamed:@"default"];

        NSString *noteStr = [NSString stringWithFormat:@"Please follow this link below to install the Freedom.desi application on your IPhone. %@",texttoshare];
        NSURL *url = [NSURL URLWithString:texttoshare];
    
        NSArray *activityItems = @[noteStr,image];
    
        NSLog(@"this %@",activityItems);
    
        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
            UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[noteStr,image] applicationActivities:nil];
            activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint];
    
            [self shareText:noteStr
                   andImage:image andUrl:nil];
    
            [self presentViewController:activityVC animated:TRUE completion:nil];
    
        }
        //if iPad
        else {
            // Change Rect to position Popover
            UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[noteStr, url] applicationActivities:nil];
            activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint];
    
            [self shareText:noteStr
                   andImage:image andUrl:nil];
    
            UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activityVC];
            [popup presentPopoverFromRect:CGRectMake(self.view.frame.size.width/2, self.view.frame.size.height/4, 0, 0)inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多