UIActivityViewController 的标题是如何设置的?

Son*_*ach 5 uiactivityviewcontroller swift

UIActivityViewController 的标题如何设置?我有一个 UIActivityViewController,它使用自定义 UIActivityItemProvider 以及自定义 UIActivity。

显示在 UIActivityItemController 顶部的标题最初很简单,“ / ”,没有副标题,然后大约一秒钟后,它变为“ System@snap-2237692 ”,副标题为“ File ”,如下所示根据下面的屏幕截图。

这些标题来自哪里以及如何控制此处显示的内容?

我尝试显式设置视图控制器的“标题”属性,但没有什么区别。

在此输入图像描述

Son*_*ach 4

经过一番尝试和错误后,我发现更改占位符项目会更改 UIActivityViewController 中显示的标题,并且标题似乎仅用于文件/URL。

我提供了各种占位符项,其中大多数都是不同数据类型的有效空对象(即数组、字典、数据和打印页面渲染器)。因为它们都是空的,所以 UIActivityViewController 根本不显示它们的标题。

不过,我还提供了稍后生成的文件的 URL。我最初为此 URL 提供的占位符为URL(fileURLWithPath: "")。所以我猜想标题中显示的最初的“/”实际上意味着文件系统根目录。我不知道随后显示的“System@snap-...”是什么意思!

但我发现,如果我将这个特定的占位符项更改为类似 的内容,URL(fileURLWithPath: "Some Text")那么我提供的任何文本作为 URL(或者实际上作为 URL 的文件名部分 - 即最后一个“/”之后的所有内容,如果有)一)是显示为 UIActivityViewController 标题的内容。

所以现在,至少对于这种情况,我找到了一种方法来控制在那里显示的标题。更重要的是,要消除本例中显示的乱码。

我认为占位符中的 URL 可能应该与实际项目中的 URL 相同,因此会有一个有意义的名称。但有时,直到数据处理完毕后我才知道最终的文件名,因此在最初提供占位符时无法得知。

如果有多个占位符项可用于生成有用的标题,我仍然有兴趣了解 UIActivityViewController 如何选择标题。如何选择一个而不是另一个?为什么没有为字符串项或属性字符串项提供标题,而只为文件/URL 项提供标题?