【问题标题】:UIActivityViewController vs UIDocumentInteractionController in iosios中的UIActivityViewController与UIDocumentInteractionController
【发布时间】:2014-01-20 12:54:02
【问题描述】:

我刚刚在iOS中阅读了一些关于UIActivityViewControllerUIDocumentInteractionController的文章,但我对如何使用它们感到非常困惑,因为它们看起来都一样。

那么,我什么时候使用UIActivityViewControllerUIDocumentInteractionController

Open In... 和使用UIActivityViewController 有什么区别吗?

我很困惑如何使用它们。请向我说明它们的具体用途。

【问题讨论】:

  • 袜子!!直到现在我都无法得到答案,甚至没有人试图给出答案!!!

标签: ios iphone sharing uiactivityviewcontroller uidocumentinteraction


【解决方案1】:

简而言之,UIDocumentInteractionController 处理文件,而UIActivityViewController 处理应用程序中的各种其他服务。我不是一个批评太多的人,但你真的应该至少尝试谷歌并至少阅读 iOS 开发者文档中的概述。

UIDocumentInteractionControllerdocumentation:

预览、打开或打印文件格式无法由您的应用直接处理的文件的视图控制器。

...

使用此类为预览、打开、复制或打印指定文件提供适当的用户界面。例如,电子邮件程序可能会使用此类来允许用户预览附件并在其他应用程序中打开它们。

在呈现其用户界面后,文档交互控制器会处理支持文件预览和菜单显示所需的所有交互。 您还可以使用委托参与在呈现的界面中发生的交互。例如,当文件将要移交给另一个应用程序打开时,会通知委托人。有关可以在委托中实现的方法的完整描述,请参阅 UIDocumentInteractionControllerDelegate

UIActivityViewControllerdocumentation:

一个视图控制器,用于从您的应用中提供标准服务。

...

该系统提供多种标准服务,例如将项目复制到粘贴板、将内容发布到社交媒体网站、通过电子邮件或 SMS 发送项目等等。应用还可以定义自定义服务。

您的应用负责配置、呈现和关闭此视图控制器。视图控制器的配置包括指定视图控制器应该操作的数据对象。 (您还可以指定您的应用程序支持的自定义服务的列表。)在呈现视图控制器时,您必须使用当前设备的适当方式来执行此操作。在 iPad 上,您必须在弹出窗口中显示视图控制器。在 iPhone 和 iPod touch 上,您必须以模态方式呈现。

【讨论】:

  • 我实际上已经用谷歌搜索了很多,并没有看到很多这两者的比较。你的回答很有帮助。
  • 一个重要的区别:给定相同的源文件,来自 UIDocumentInteractionController 的共享表包括快速查看。 UIActivityViewController 的共享表没有。
【解决方案2】:

基本上UIActivityViewController 共享数据对象(如字符串或图像),其中UIDocumentInteractionController 共享整个文档/文件 f.e。一个PDF。

【讨论】:

  • 取决于:如果您有图像文件,那么可以。如果你只有一个 UIImage 的实例,那么它就不是一个文件。
  • 顺便说一句,UIActivityViewController 在共享包含在 NSData 对象中的 PDF 方面没有问题。区别实际上主要在于数据与文件。
  • 我们可以借助 UIActivityViewController 来共享文件。 @sangony 的回答很有道理
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-20
  • 1970-01-01
  • 2013-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多