Давайте посмотрим, как UIActivityViewController обрабатывает совместное использование текста, URL-адресов, изображений и т. Д.
Если вы хотите поделиться контентом в своем приложении, Apple в iOS 6 представила класс UIActivityViewController . Этот класс обрабатывает URL-адреса, текст, изображения, видео и многое другое просто и с помощью всего нескольких строк кода.
Сегодня в этой статье мы поговорим о том, как реализовать UIActivityViewController в нашем приложении и что нам нужно сделать, чтобы делиться нашим контентом.
Начиная
Сначала откройте Xcode и создайте новый проект. Выберите Приложение для одного просмотра.

Теперь создайте UITextView под названием messageTextView в верхней части экрана, который будет содержать наше сообщение, и кнопку в нижней части экрана, при нажатии на которую будет отображаться наше меню общего доступа.

Реализация обмена текстом
Зайдите в функцию кнопки IBAction и добавьте следующий код:
let items = [messageTextView.text] let ac = UIActivityViewController(activityItems: items, applicationActivities: nil) present(ac, animated: true)
Эти простые три строки создадут массив с нашим UITextView текстом, создадут объект UIActivityViewController, а затем покажут пользователю меню общего доступа.
Здесь мы можем найти множество приложений, которые поддерживают обмен текстом, например, «Сообщения», «Почта», «Whatsapp, Telegram» и т. Д. Если мы попытаемся нажать на значок «Сообщения», мы увидим, что приложение откроется, а наш текст появится в текстовом поле. .


Реализация совместного использования изображений
Если мы хотим поделиться изображением, нам нужно немного изменить интерфейс приложения и добавить UIImageView с именем profileImageView под элементом управления UITextView.

Теперь измените функцию кнопки IBAction следующим кодом:
let items = [profileImageView.image] let ac = UIActivityViewController(activityItems: items, applicationActivities: nil) present(ac, animated: true)
Когда вы делитесь изображением из своего приложения, пользователи могут сохранить его в галерее, но запись в библиотеку фотографий - это ограниченная операция. Итак, если пользователь нажмет на эту операцию, приложение выйдет из строя.
Чтобы избежать этой проблемы, вам нужно спросить разрешение у пользователя следующим образом:
- Откройте
Info.plistфайл своего проекта. - Щелкните значок
+. - Нажмите кнопку Конфиденциальность - Описание использования дополнений фотоархива.
- Установите значение Нам нужно написать фото в вашей галерее.



Полный код
Вы можете найти полный код на GitHub.
Спасибо за чтение. Если у вас есть вопросы или предложения, дайте мне знать в комментариях.