UIActivityViewController vs UIDocumentInteractionController в ios

Я только что прочитал несколько статей о UIActivityViewController и UIDocumentInteractionController в iOS, но я очень смущен тем, как их использовать, потому что оба кажутся одинаковыми.

Итак, когда я использую UIActivityViewController или UIDocumentInteractionController?

Есть ли разница для Open In... и используйте UIActivityViewController?

Я очень смущен тем, как их использовать. Просьба пояснить мне их конкретное использование.

Ответ 1

Короче говоря, UIDocumentInteractionController работает с файлами, а UIActivityViewController с другими службами вашего приложения. Я не из тех, кто много критикует, но вы действительно должны хотя бы попробовать Google и прочитать хотя бы обзор в Документах для разработчиков iOS.

Документация UIDocumentInteractionController:

Контроллер представления, который просматривает, открывает или печатает файлы, формат файла которых не может быть напрямую обработан вашим приложением.

...

Используйте этот класс для представления соответствующего пользовательского интерфейса для предварительного просмотра, открытия, копирования или печати указанного файла. Например, программа электронной почты может использовать этот класс, чтобы позволить пользователю просматривать вложения и открывать их в других приложениях.

После представления своего пользовательского интерфейса контроллер взаимодействия с документом обрабатывает все взаимодействия, необходимые для поддержки предварительного просмотра файла и отображения меню. Вы также можете использовать делегата для участия во взаимодействиях, происходящих в представленном интерфейсе. Например, делегат уведомляется, когда файл собирается передать другому приложению для открытия. Полное описание методов, которые вы можете реализовать в своем UIDocumentInteractionControllerDelegate, смотрите в UIDocumentInteractionControllerDelegate.

Документация UIActivityViewController:

Контроллер представления, который вы используете для предоставления стандартных услуг из вашего приложения.

...

Система предоставляет несколько стандартных услуг, таких как копирование элементов на монтажную панель, размещение контента на сайтах социальных сетей, отправка элементов по электронной почте или SMS и т.д. Приложения также могут определять пользовательские сервисы.

Ваше приложение отвечает за настройку, представление и отклонение этого контроллера представления. Конфигурация для контроллера представления включает в себя указание объектов данных, с которыми должен работать контроллер представления. (Вы также можете указать список пользовательских сервисов, которые поддерживает ваше приложение.) Представляя контроллер представления, вы должны сделать это, используя соответствующие средства для текущего устройства. На iPad вы должны представить контроллер представления во всплывающем окне. На iPhone и iPod touch вы должны представить его модально.

Ответ 2

В основном UIActivityViewController разделяет объекты данных (например, строки или изображения), где UIDocumentInteractionController разделяет все документы/файлы f.e. PDF.