我有一个 Book
类,我想让我的用户分享他们每本书的进度。为此,我提供了一个 UIActivityViewController
,但我想为 Facebook、Twitter 等添加不同的文本,所以我让 Book
符合 UIActivityItemSource
协议(protocol),然后我可以根据 activityType
为其方法返回不同的值。到目前为止一切顺利。
现在我想在用户选择 Facebook 或 Twitter 时也分享一张图片,但对于所有其他选项只分享文本。不过,UIActivityItemSource
中的方法只允许我返回一个对象。要共享字符串和图像,我似乎必须将它们添加为不同的事件项目,但我不知道用户会选择哪个 activityType
来决定我是否应该包含图像还是不是。
那么如何根据 activityType
共享不同数量的各种类和值的对象?
提前致谢
丹尼尔
编辑:现在我正在尝试使用 UIActivityItemProvider
来做到这一点……问题是,有时我只想分享一些文本,有时我也想分享一张图片。所以我的 UIActivityItemProvider
必须有条件地返回多个对象(有时它会返回一个图像,有时它不会)或者我需要使用多个提供者并且有时图像的提供者返回 nil,但是这似乎是不可能的。现在怎么办?
最佳答案
我找到了解决问题的方法。不过这不是很好,所以我不会接受这个答案,但我会把它留在这里以防它对某人有帮助。
我不能让 UIActivityItemProvider
返回 nil 但我可以让它返回一个空字符串,所以这就是我所做的 - 对于 activityTypes
我想要一个图像我返回图像,对于我不返回的图像,我返回一个空字符串。然后我有另一个文本提供者。
不过,也有一些缺点。返回一个空字符串会创建一个新行,这不会破坏交易,但很烦人。此外,始终会有一个字符串项,即使我为我的文本提供程序返回一个空字符串,所以像保存到相机胶卷这样的选项将永远不可用。
我现在就这样做,但如果有人有更好的建议请告诉我。
关于ios - UIActivityItemProvider 返回多个对象还是什么都不返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35470786/