UIActivityViewController与iOS中的UIDocumentInteractionController

我刚刚在iOS上阅读了一些关于UIActivityViewControllerUIDocumentInteractionController文章,但是我很困惑如何使用它们,因为两者看起来都是一样的。

那么,我什么时候使用UIActivityViewControllerUIDocumentInteractionController呢?

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

我很困惑如何使用它们。 请向我澄清他们的具体用途。

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

UIDocumentInteractionController概述:

文档交互控制器以及委托对象提供了应用程序内支持,用于pipe理用户与本地系统中文件的交互。 例如,电子邮件程序可能会使用此类来允许用户预览附件并在其他应用程序中打开它们。 使用此类来呈现用于预览,打开,复制或打印指定文件的适当用户界面。

在呈现其用户界面之后,文档交互控制器处理支持文件预览和菜单显示所需的所有交互。 在某些情况下,对象使用委托来确定如何响应特定的命令。 例如,要提供复制或打印,您必须实现documentInteractionController:canPerformAction:documentInteractionController:performAction:委托方法。

您也可以使用委托来参与所呈现的界面中发生的交互。 例如,当一个文件即将被移交给另一个应用程序打开时,通知代理人。 有关可以在委托中实现的方法的完整说明,请参阅UIDocumentInteractionControllerDelegate协议参考 。

UIActivityViewController概述:

UIActivityViewController类是一个标准的视图控制器,您可以使用它来从您的应用程序提供各种服务。 系统提供多种标准服务,例如将项目复制到粘贴板,将内容发布到社交媒体网站,通过电子邮件或SMS发送项目等等。 应用程序也可以定义定制服务。

您的应用程序负责configuration,呈现和解散此视图控制器。 视图控制器的configuration涉及指定视图控制器应该在其上操作的数据对象。 (您也可以指定您的应用程序支持的自定义服务列表。)在呈现视图控制器时,您必须使用当前设备的适当方式来执行此操作。 在iPad上,您必须在popup窗口中显示视图控制器。 在iPhone和iPod touch上,您必须以模态forms呈现。

基本上UIActivityViewController共享数据对象(如string或图像),其中UIDocumentInteractionController共享PDF文件/文件。