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

  • Убедиться, что пользователи получают и, при необходимости, реагируют на критически важную информацию
Предупреждение
Модальное окно
В iOS существуют предупреждения, представления активности (или общие списки) и списки действий, которые вы используете в приложении при определенных ситуациях. Чтобы отобразить модальное содержимое в вашем приложении, iOS 13 и более поздние версии поддерживают следующие стили представления.
Лист

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

  • Проведя вниз от верхней части экрана
  • Проведя пальцем вниз из любого места на экране, когда содержимое карточки прокручивается вверх
  • Нажимая на кнопку

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

Полный экран

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

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

ЗАМЕТКА
Если вы используете текущий контекстный стиль модального представления для отображения модального содержимого в разделенной области просмотра, всплывающем окне или другом представлении, которое не является полноэкранным, вам следует переключиться на использование листа при представлении модального содержимого в компактной среде.
Используйте модальность, только когда это имеет смысл. Создавайте модальные окна только тогда, когда важно сосредоточить внимание людей на выборе или выполнении задачи, отличной от их текущей. Модальный опыт выводит пользователей из их текущего контекста и требует действий для отстранения, поэтому важно использовать его только тогда, когда он приносит явную выгоду.

Зарезервируйте оповещения для предоставления важной и призывающей к действию информации. Как правило, возникает предупреждение из-за возникшей проблемы. Поскольку оповещение прерывает процесс и требует нажатия для его отклонения, важно, чтобы люди чувствовали, что такое вторжение оправдано.

Сделайте модальные задачи простыми, короткими и сфокусированными. Избегайте создания приложения внутри другого. Если модальная задача слишком сложна, люди могут потерять из виду задачу, которую они приостановили, когда вошли в модальный контекст. Будьте особенно осторожны при создании модальных задач, включающих иерархию представлений, потому что люди могут потеряться и забыть, каким образом вернуться к началу. Если модальная задача должна содержать подпредставления, укажите единый путь по иерархии и четкое направление к завершению. Старайтесь не использовать кнопку «Готово» (кроме случаев выполнения задачи).

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

При необходимости помогите людям избежать потери данных, получив подтверждение перед закрытием модального представления. Независимо от того, используют ли люди жест отклонения или кнопку для закрытия представления: если действие может привести к потере пользовательского контента, представьте лист действий, который объяснит ситуацию и предоставит пользователям способы ее разрешения.

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

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

Скоординируйте внешний вид модального вида с вашим приложением. Например, если модальное представление содержит панель навигации, оно должно иметь такой же внешний вид, что и панель навигации в вашем приложении.

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

Для руководства разработчика см. UIViewController и UIPresentationController.