让UIActivityItemProvider返回多个对象或什么都没有?

时间:2016-02-18 00:54:17

标签: ios swift uiactivityviewcontroller

我有一个Book课程,我想让我的用户分享每本书的进度。要做到这一点,我提出UIActivityViewController,但我想为Facebook,Twitter等添加不同的文本,所以我Book符合UIActivityItemSource协议,然后我可以返回取决于activityType,其方法的值不同。到目前为止一切都很好。

现在我想在用户选择Facebook或Twitter时共享图像,但只是用于所有其他选项的文本UIActivityItemSource中的方法只允许我返回一个对象。要共享字符串和图像,我似乎必须将它们添加为不同的活动项目,但后来我不知道用户将选择哪个activityType来决定是否应该包含图像。

那么如何根据activityType分享不同类别和值的不同数量的对象?

提前致谢,

丹尼尔

编辑:现在我正试图用UIActivityItemProvider来做...事情是,有时候我想分享一些文字,有时我也想分享一个图像。所以我的UIActivityItemProvider必须有条件地返回多个对象(有时它会返回一个图像,有时它不会)或者我需要使用多个提供程序并让图像的提供者有时返回nil,但这并不是'似乎有可能。现在怎么样?

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。但这并不好,所以我不接受这个答案,但我会把它留在这里以防它帮助某人。

我不能让UIActivityItemProvider返回nil,但我可以让它返回一个空字符串,这就是我所做的 - 对于activityTypes我想要一个图像我返回一个图像,我没有,我返回一个空字符串。然后我有另一个文本提供者。

但是有一些缺点。返回一个空字符串会创建一个新行,这不是一个交易破坏者,但它很烦人。即使我为文本提供者返回一个空字符串,也总会有一个字符串项,因此保存到相机胶卷的选项将无法使用。

我现在就这样做,但如果有人有更好的建议请告诉我。