在UIActivityViewController和UIActivityItemSource中执行操作的初始文本和paperclipped-URL?

Ben*_*ger 10 iphone user-interface ios ios6

最后通过关于新UIActivityViewController类和UIActivityItemSource协议的Apple(相当令人沮丧的)文档来完成它,我正在尝试将不同的数据集发送到从活动视图调用的不同操作.为了简化事情,我正在研究两件事.

  1. 一个Facebook发帖动作,应该说"看看这个!" 并附上一个URL到帖子(用那个可爱的小回形针).
  2. 一个Twitter发布动作,应该说"用#hashtag检查这个!" 并附加相同的URL(使用相同的回形针).

这是我现在实施的代码.

- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {
    if ([activityType isEqualToString:UIActivityTypePostToFacebook]) {
        return @"Check this out!";
    } else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) {
        return @"Check this out, with #hashtag!";
    }

    return @"";
}

- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
    return @"";
}
Run Code Online (Sandbox Code Playgroud)

然后当我设置这个活动视图控制器(它在同一个类中)时,这就是我所做的.

UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:@[self] applicationActivities:nil];
[self presentViewController:activityView animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

我的困境是如何附加该NSURL对象.调用iOS 6 SL级发布模式时相对容易; 您只需调用各个方法来附加URL或图像.我怎么去这里呢?

我会注意到,如果我只返回NSString对象,而不是返回对象,它们会显示回形针,帖子中没有正文.如果我返回这两个项目的数组,则根本不显示任何内容.-activityViewController:itemForActivityTypeNSURL

Ben*_*ger 15

显然它就像这样简单:将数组传递给UIActivityViewController's init调用的第一个参数,数组中的每个项处理一个不同的数据类型,最终将在compose屏幕中.self处理文本,第二个对象(the NSURL)附加URL.

NSArray *items = @[self, [NSURL URLWithString:@"http://this-is-a-url.com"]];
UIActivityViewController *activityView = [[UIActivityViewController alloc]  initWithActivityItems:items applicationActivities:nil];
[self presentViewController:activityView animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

真的希望有更多关于此,但在这里.

  • 请注意,单个UIActivityItemSource只能返回单个数据的占位符(没有为`activityViewControllerPlaceHolderItem返回NSArrays:`.有关详细信息,请参阅此问题:http://stackoverflow.com/questions/13029340/uiactivityitemsource-protocole-set -complex对象 (3认同)