UIActivityViewController vs UIDocumentInteractionController en ios

Acabo de leer algunos artículos sobre UIActivityViewController y UIDocumentInteractionController en iOS, pero estoy muy confundido sobre cómo usarlos porque ambos parecen ser los mismos.

Entonces, ¿cuándo utilizo UIActivityViewController o UIDocumentInteractionController ?

¿Hay alguna diferencia para Open In... y usar UIActivityViewController ?

Estoy muy confundido sobre cómo usarlos. Por favor aclara su uso específico.

En resumen, UIDocumentInteractionController trata con files mientras que UIActivityViewController trata con varios otros services en su aplicación. No soy de los que critican mucho, pero al less debes tratar de google y leer al less la descripción en iOS Developer Docs.

Descripción de UIDocumentInteractionController:

Un controller de interacción de documentos, junto con un object de delegado, proporciona compatibilidad integrada para administrar las interacciones de los usuarios con files en el sistema local. Por ejemplo, un progtwig de correo electrónico puede usar esta class para permitir que el usuario obtenga una vista previa de los files adjuntos y los abra en otras aplicaciones. Use esta class para presentar una interfaz de usuario adecuada para get una vista previa, abrir, copyr o imprimir un file específico.

Después de presentar su interfaz de usuario, un controller de interacción de documentos maneja todas las interacciones necesarias para admitir la vista previa del file y la visualización del menu. En algunos casos, el object emplea un delegado para determinar cómo responder a commands específicos. Por ejemplo, para proporcionar copy o printing, debe implementar documentInteractionController:canPerformAction: y documentInteractionController:performAction: delegate methods.

También puede usar el delegado para participar con las interacciones que ocurren dentro de la interfaz presentada. Por ejemplo, el delegado recibe una notificación cuando un file está a punto de ser transferido a otra aplicación para su apertura. Para get una descripción completa de los methods que puede implementar en su delegado, consulte Referencia del protocolo UIDocumentInteractionControllerDelegate .

Descripción de UIActivityViewController:

La class UIActivityViewController es un controller de vista estándar que puede usar para ofrecer varios services desde su aplicación. El sistema ofrece varios services estándar, como copyr elementos en la table de trabajo, publicar contenido en los sitios de networkinges sociales, enviar artículos por correo electrónico o SMS y más. Las aplicaciones también pueden definir services personalizados.

Su aplicación es responsable de configurar, presentar y descartar este controller de vista. La configuration para el controller de vista implica especificar los objects de datos en los que debe actuar el controller de vista. (También puede especificar la list de services personalizados que admite su aplicación). Al presentar el controller de vista, debe hacerlo utilizando los medios apropiados para el dispositivo actual. En el iPad, debe presentar el controller de vista en una window emergente. En iPhone y iPod touch, debes presentarlo de manera modal.

Básicamente, UIActivityViewController comparte objects de datos (como cadenas o imágenes) donde UIDocumentInteractionController comparte documentos / files completos en un PDF.