Этот вопрос проверяет понимание механизма модальной презентации контроллеров в iOS-разработке, который необходим для отображения временных экранов поверх основного контента.
Модальная презентация — это фундаментальный паттерн в iOS, позволяющий временно отобразить интерфейс поверх текущего контекста, перехватывая фокус пользователя для выполнения конкретной задачи. Она реализуется через класс UIViewController и его метод present(_:animated:completion:).
Когда вы вызываете метод present, система создает иерархическую связь между контроллерами: текущий контроллер становится presenting view controller, а новый — presented view controller. По умолчанию новый контроллер появляется снизу, занимая весь экран, но стиль можно изменить.
.fullScreen, .pageSheet на iPhone)..coverVertical).// 1. Создаем контроллер для показа
let settingsVC = SettingsViewController()
// 2. Настраиваем стиль презентации (опционально)
settingsVC.modalPresentationStyle = .pageSheet // На iPhone появляется как лист
// 3. Показываем контроллер модально
self.present(settingsVC, animated: true) {
print("Модальный экран показан")
}
// 4. Чтобы закрыть модальный экран, внутри settingsVC вызываем:
// self.dismiss(animated: true, completion: nil)Модальные экраны используются для задач, которые должны быть завершены или отменены перед возвратом к основному потоку: формы ввода данных (логин, регистрация), предупреждения (UIAlertController), выбор медиафайлов, быстрые настройки. В современных iOS, начиная с iOS 13, стандартным стал стиль .pageSheet, который позволяет свайпом вниз закрыть модальный экран, улучшая юзабилити.
Вывод: Используйте модальную презентацию для временных, самодостаточных интерфейсов, которые требуют немедленного внимания пользователя и логически отделены от основной навигации приложения.