В переопределениях viewWillAppear/Disappear и большинстве lifecycle-методов UIViewController нужно вызывать super, иначе контейнеры и система ломают поведение.
Разбор
- Пропуск super — классический баг appearance-переходов.
- В loadView при полном code UI super не всегда вызывают — тогда полностью заменяют создание view.
- Документация Apple для конкретного метода — источник истины.
- Hosting VC для SwiftUI тоже требует корректных вызовов.
Итог
Почти всегда зовите super в lifecycle UIKit, если не уверены иначе.