我需要UIActivityViewController
的帮助。
我需要为文件提供活动控制器,除了默认操作,用户将能够在其他应用程序中打开该文件。
我知道如何使用UIDocumentController
执行此操作,其中显示所有应用程序都可以打开文件的popover。
但是,如何在UIActivityViewController
中显示所有这些应用?
P.S。例如,可以在Apple Mail应用程序中看到此行为。
答案 0 :(得分:6)
请TTOpenInAppActivity查看一种方法,将UIActivityViewController
(用于正常分享)和“打开方式”按钮合并为一个UIDocumentInteractionController
。在iOS 8之前,这是管理它的最佳方式。
答案 1 :(得分:4)
UIActivityViewController和UIDocumentController之间的功能和行为是不同的。
<强> UIActivityViewController 强>
提供预定义的活动,您可以传递一个数组来选择应该在显示的默认活动中排除哪些活动,如果您想要添加更多活动,您必须使用自定义活动,不幸的是,这些活动将显示在其余的活动甚至更多,图标将始终为灰色,您的应用程序永远不会失控,因为您可以使用代理和其他东西来了解这些应用程序上发生了什么。 (除非您手动创建一个打开另一个应用程序的活动)
<强> UIDocumentController 强>
这个要求系统为所有已注册的应用程序提供特定文件扩展名,许多应用程序已经注册了它们的独占扩展,这使得该应用程序将是唯一显示的应用程序。如果您传递图像,您将看到可以处理此文件的所有应用程序。使用此应用程序时,您的应用程序将失去控制权,因为其他应用程序将被打开。
您的最终目标是什么?如果您更详细地描述它,我们可以为您提供更好的解决方案。
据我所知,您应该看到用户尝试打开的文件类型,然后自己用最合适的文件打开它。 由于你无法真正模仿苹果正在做的事情,你应该通过你的界面处理这个问题,让用户去分享&#34;分享&#34;或者打开&#34;打开&#34;例如。
答案 2 :(得分:0)
答案很简单。没有办法做到这一点。您无法将默认值以外的应用添加到UIActivityViewControllers
。
你是绝对正确的,你可以通过UIDocumentInteractionController
实现这一点。