Ответ 1
Короче говоря, UIDocumentInteractionController
работает с файлами, а UIActivityViewController
с другими службами вашего приложения. Я не из тех, кто много критикует, но вы действительно должны хотя бы попробовать Google и прочитать хотя бы обзор в Документах для разработчиков iOS.
Документация UIDocumentInteractionController
:
Контроллер представления, который просматривает, открывает или печатает файлы, формат файла которых не может быть напрямую обработан вашим приложением.
...
Используйте этот класс для представления соответствующего пользовательского интерфейса для предварительного просмотра, открытия, копирования или печати указанного файла. Например, программа электронной почты может использовать этот класс, чтобы позволить пользователю просматривать вложения и открывать их в других приложениях.
После представления своего пользовательского интерфейса контроллер взаимодействия с документом обрабатывает все взаимодействия, необходимые для поддержки предварительного просмотра файла и отображения меню. Вы также можете использовать делегата для участия во взаимодействиях, происходящих в представленном интерфейсе. Например, делегат уведомляется, когда файл собирается передать другому приложению для открытия. Полное описание методов, которые вы можете реализовать в своем
UIDocumentInteractionControllerDelegate
, смотрите вUIDocumentInteractionControllerDelegate
.
Документация UIActivityViewController
:
Контроллер представления, который вы используете для предоставления стандартных услуг из вашего приложения.
...
Система предоставляет несколько стандартных услуг, таких как копирование элементов на монтажную панель, размещение контента на сайтах социальных сетей, отправка элементов по электронной почте или SMS и т.д. Приложения также могут определять пользовательские сервисы.
Ваше приложение отвечает за настройку, представление и отклонение этого контроллера представления. Конфигурация для контроллера представления включает в себя указание объектов данных, с которыми должен работать контроллер представления. (Вы также можете указать список пользовательских сервисов, которые поддерживает ваше приложение.) Представляя контроллер представления, вы должны сделать это, используя соответствующие средства для текущего устройства. На iPad вы должны представить контроллер представления во всплывающем окне. На iPhone и iPod touch вы должны представить его модально.