UIActivityViewController与ios中的UIDocumentInteractionController

时间:2014-01-20 12:54:02

标签: ios iphone sharing uiactivityviewcontroller uidocumentinteraction

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

那么,我何时使用UIActivityViewControllerUIDocumentInteractionController

Open In...&是否有任何区别使用UIActivityViewController

我对如何使用它们感到非常困惑。请告诉我他们的具体用途。

2 个答案:

答案 0 :(得分:20)

简而言之,UIDocumentInteractionController处理文件,UIActivityViewController处理您应用中的各种其他服务。我不是一个批评太多的人,但你至少应该尝试google并至少阅读iOS Developer Docs中的概述。

UIDocumentInteractionController概述:

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

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

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

UIActivityViewController概述:

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

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

答案 1 :(得分:2)

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