swift - UIActivityViewController 的标题是怎么设置的?

标签 swift uiactivityviewcontroller

UIActivityViewController 的标题是如何设置的?我有一个使用自定义 UIActivityItemProvider 和自定义 UIActivity 的 UIActivityViewController。

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

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

我已经尝试显式设置 View Controller 的“标题”属性,但这没有什么区别。

enter image description here

最佳答案

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

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

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

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

所以现在,至少对于这种情况,我找到了一种方法来控制那里显示的标题。更重要的是,要摆脱在这种情况下显示的胡言乱语。

我很欣赏占位符中的 URL 应该与实际项目中的 URL 相同,因此会有一个有意义的名称。但有时我在处理数据之前没有最终文件名,因此在最初提供占位符时无法知道它。

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

关于swift - UIActivityViewController 的标题是怎么设置的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61435831/

相关文章:

ios - Swift-如何在App Store中共享应用程序链接

ios - 标题使用不明确 - Xcode 9 beta

testing - 使用测试账号时用iOS SDK获取 "Cannot Post To Facebook"

ios - 来自 UIActivityItemSource 的多个数据

ios - 删除 UIActivityViewController 中的换行符

ios - 如何重新排列 UIActivityViewController 上的事件?

ios - 从 Objective C 类更新 SwiftUI View

ios - 如何在 Alamofire 中使用相同的 API 函数 .PUT 请求更新 JSON

ios - 在 Swift 中带有标识符的 CustomModalViewController

swift - swift 中这个神秘的 switch case 代码是什么?