我不相信有一种方法可以做我要问的事情,但我想我会问一下以防万一。
我目前正在对UIActivityItemProvider进行子类化,以便为各种社交媒体平台提供自定义消息:
- (id)item
{
if ([self.activityType isEqualToString:UIActivityTypePostToFacebook]) {
//Possibly present some view modally here to let the user decide on text to return?
return @"Some facebook message";
} else if ([self.activityType isEqualToString:UIActivityTypePostToTwitter]) {
return @"Some Tweet";
}
}问题是,我想为用户提供一个中间选项来定制他们想要在facebook上发布的消息(“一些facebook消息”)。理想情况下,这应该是一个UIActionSheet,用户可以在其中选择三个选项中的一个来设置数据的格式。
UIActionSheet只是一个例子,但您可以想象在片段中呈现的其他类型的自定义视图,从用户单击facebook图标直到他们看到实际的UI为止,他们在其中键入帖子的文本。
有没有办法做到这一点?
发布于 2015-10-22 06:41:34
您只需实现NSObject的一个子类并实现UIActivityItemSource协议。然后,从activityViewController:itemForActivityType:返回一个NSURL对象。这将作为Facebook帖子的URL附件,您可以将其传递给UIActivityViewController。
如果安装了Facebook应用程序,它将打开应用程序的共享对话框,否则将打开iOS本地共享对话框,并将网址作为附件。
根据Facebook的指导原则,您不能预先填充共享的文本。你可以用Twitter做到这一点,但要做到这一点,你必须为NSObject创建另一个子类,并实现UIActivityItemSource,并从同一消息中返回一个NSString。这将作为tweet的文本。
同样,我相信返回一个UIImage可以将它设置为Facebook的附件。
https://stackoverflow.com/questions/20173366
复制相似问题