"打开" UIActivityViewController中的功能

时间:2014-03-18 15:48:26

标签: ios iphone uiactivityviewcontroller

我需要UIActivityViewController的帮助。 我需要为文件提供活动控制器,除了默认操作,用户将能够在其他应用程序中打开该文件。 我知道如何使用UIDocumentController执行此操作,其中显示所有应用程序都可以打开文件的popover。 但是,如何在UIActivityViewController中显示所有这些应用?

P.S。例如,可以在Apple Mail应用程序中看到此行为。

3 个答案:

答案 0 :(得分:6)

TTOpenInAppActivity查看一种方法,将UIActivityViewController(用于正常分享)和“打开方式”按钮合并为一个UIDocumentInteractionController。在iOS 8之前,这是管理它的最佳方式。

答案 1 :(得分:4)

UIActivityViewController和UIDocumentController之间的功能和行为是不同的。

<强> UIActivityViewController
提供预定义的活动,您可以传递一个数组来选择应该在显示的默认活动中排除哪些活动,如果您想要添加更多活动,您必须使用自定义活动,不幸的是,这些活动将显示在其余的活动甚至更多,图标将始终为灰色,您的应用程序永远不会失控,因为您可以使用代理和其他东西来了解这些应用程序上发生了什么。 (除非您手动创建一个打开另一个应用程序的活动)

<强> UIDocumentController
这个要求系统为所有已注册的应用程序提供特定文件扩展名,许多应用程序已经注册了它们的独占扩展,这使得该应用程序将是唯一显示的应用程序。如果您传递图像,您将看到可以处理此文件的所有应用程序。使用此应用程序时,您的应用程序将失去控制权,因为其他应用程序将被打开。

您的最终目标是什么?如果您更详细地描述它,我们可以为您提供更好的解决方案。

据我所知,您应该看到用户尝试打开的文件类型,然后自己用最合适的文件打开它。 由于你无法真正模仿苹果正在做的事情,你应该通过你的界面处理这个问题,让用户去分享&#34;分享&#34;或者打开&#34;打开&#34;例如。

答案 2 :(得分:0)

答案很简单。没有办法做到这一点。您无法将默认值以外的应用添加到UIActivityViewControllers

你是绝对正确的,你可以通过UIDocumentInteractionController实现这一点。