Из документации вы можете видеть, что UIImagePickerController наследует от UINavigationController.
Глядя на объявление делегата, этоПонятно, что требуется подтверждение обоих UIImagePickerControllerDelegate
& UINavigationControllerDelegate
Почему делегат требует подтверждения обоих протоколов?
UIImagePickerController
являетсясистемный интерфейс.Этот класс предназначен для использования как есть и не допускает никаких визуальных изменений.Как вы можете видеть на скриншоте ниже, он поставляется с панелью навигации.
Некоторые из UIImagePickerControllerDelegate
методов, таких как imagePickerControllerDidCancel(_:)
, требуют связи с UINavigationController
для получения событий.
Вот почему UIImagePickerController
должен подтвердить, что вы подтверждаете UINavigationControllerDelegate
.Следовательно, вы видите ошибку.Также обратите внимание, что методы UINavigationControllerDelegate
являются необязательными, поэтому вам не нужно их реализовывать, поэтому они просто удаляют ошибку, когда вы упоминаете UINavigationControllerDelegate
.