我不相信有办法做我想要问的事,但我想我会问以防万一。
我目前正在为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图标时,在segue中呈现的其他类型的自定义视图,直到他们看到他们在帖子的文本中键入的实际UI。
有没有办法做这种行为?
答案 0 :(得分:0)
您希望简单地实现NSObject
的子类并实现UIActivityItemSource
协议。然后,从activityViewController:itemForActivityType:
返回NSURL
个对象。这将作为Facebook帖子的URL附件,并将其传递给UIActivityViewController
。
如果安装了Facebook App,它将打开应用程序的共享对话框,否则将打开iOS Native share对话框,并将URL作为附件打开。
根据Facebook指南,您无法预先填写共享文本。你可以用Twitter做到这一点,但为此你必须有NSObject的另一个子类并实现UIActivityItemSource
并从同一个Message返回NSString
。这将作为推文的文本。
同样,我相信返回UIImage
可以将其设置为Facebook中的附件。