В этом коротком руководстве мы узнаем, как создать событие и добавить его в собственный календарь на iOS с помощью EventKit и EventKit UI.

Шаг 1. Создайте новый проект Xcode и добавьте возможности

Откройте Xcode и выберите шаблон приложения, интерфейс раскадровки и назовем этот проект Calendarexample.

Теперь перейдите непосредственно к файлу Info.Plist и добавьте Конфиденциальность - Описание использования календарей в список свойств . Это необходимый шаг для доступа и добавления событий в собственный календарь iOS из нашего приложения. В качестве строки я добавил следующее предложение:

«Мы хотим получить доступ к вашему календарю, чтобы добавить соответствующие события» - это предложение будет видно нашему пользователю, как только появится запрос на разрешение.

Шаг 2. Импортируйте фреймворки и делегируйте

Давайте импортируем необходимые фреймворки в верхнюю часть нашего файла ViewController:

Также добавьте протокол EKEventEditViewDelegate в свой класс ViewController:

Шаг 3. Давайте напишем несколько функций

Если вы запустите свой код на этом этапе, ваша сборка завершится ошибкой со следующим предупреждением от Xcode:

Нажмите «Исправить», и вы увидите, что была добавлена ​​следующая функция:

Эта функция необходима для обработки завершения действия после того, как событие было добавлено в календарь, таким образом, наше приложение сможет знать, что делать, когда мы добавим событие в EKEventEditViewDelegate. Мы просто скажем нашему приложению закрыть делегат с помощью следующей строки кода:

Добавьте строку выше внутри функции eventEditViewController.

Теперь давайте напишем нашу функцию для представления EKEventEditViewDelegate и добавления события, давайте сначала объявим одну переменную и одну константу:

Скопируйте / вставьте эти строки поверх функции viewDidLoad, это будет необходимо в нашей функции.

Теперь давайте, наконец, напишем нашу функцию для добавления события в наш календарь, скопируйте приведенный ниже код и вставьте его в метод viewDidLoad.

Эта функция проверяет, есть ли у пользователя авторизованный доступ к календарю, и содержит следующее:

  • Название (здесь мы использовали «Keynote Apple»)
  • Дата начала (мы использовали дату по умолчанию: сейчас)
  • Дата окончания (мы использовали дату окончания по умолчанию: сейчас + 1 минута)
  • URL-адрес (мы использовали «https://apple.com»)

Вы также можете добавить несколько элементов информации, таких как статус мероприятия, имя организатора и, продлится ли мероприятие весь день или нет.

Ваш ViewController теперь должен выглядеть так:

Шаг 4. Запустите приложение

Теперь запустите приложение, и на вашем экране должно появиться всплывающее окно с запросом разрешения календаря. Затем появится делегат календаря с данными, которые мы уже предоставили в нем. Вы можете изменить его и добавить событие в календарь симулятора.

Мы сделали это! Мы успешно добавили мероприятие в календарь нашего iPhone.

Следующий шаг: попробуйте вызвать эту функцию с помощью кнопки «Добавить событие» и вспомните необходимую информацию из выбранной вами базы данных! Кроме того, попробуйте справиться с ситуацией, когда пользователь отказывается от разрешения представить его снова, когда он хочет добавить событие в свой календарь.

Спасибо за внимание! Я всегда рад поболтать и поработать на [email protected]. Рассмотрите возможность подписки, чтобы получить неограниченный доступ к моим статьям и всему Medium через мою реферальную ссылку

Репозиторий Github: