1

我不相信有办法做我要问的事情,但我想我会问以防万一。

我目前正在子类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。

有没有办法做这种行为?

4

1 回答 1

0

您只想实现协议的子类NSObject并实现UIActivityItemSource协议。然后,从activityViewController:itemForActivityType:返回一个NSURL对象。这将作为 Facebook 帖子的 URL 附件,您将其传递给UIActivityViewController.

如果安装了 Facebook 应用程序,它将打开应用程序的共享对话框,否则将打开 iOS 原生共享对话框,其中 URL 作为附件。

根据 Facebook 指南,您不能预先填写分享的文本。你可以用 Twitter 做到这一点,但为此你必须有另一个 NSObject 的子类,并实现并从同一个消息UIActivityItemSource返回一个。NSString这将作为推文的文本。

同样,我相信返回一个UIImage可以将其设置为 Facebook 中的附件。

于 2015-10-21T22:41:33.807 回答