Ну, это из-за иерархии вашего UIViewcontrollers
Позвольте мне коротко объяснить,
A UINavigationController
- это стек Last In first out из UIViewControllers
, когда вы помещаете UIViewController
, когда вы помещаете его в стек, это означает, что за вашим UIViewController
нет ничего, потому что иерархия UIWindow
содержит один элемент в то время внутри UINavigationController
.
Посмотрите на это изображение, чтобы объяснить, что является последним в стеке, рассмотрите это как UINavigationViewController
с UIViewControllers
как Элементы данных
Теперь, почему это работает, когда вы present
UIViewController
, просто потому, что вы накладываете UIViewController
поверх текущего видимого.
Проверьте это изображение того, как работает презентация.
Заключение :
Когда вы установитеView.backgroundColor = .clear
пока вы присутствуете, вы можете видеть заднюю часть вашего настоящего UIViewController
, но при нажатии вы просто видите черный экран, потому что там ничего нет.
Краткий ответ : Вы не сможете увидеть, что стоит, если не представите.