Вопрос проверяет знание этапов жизненного цикла UIViewController.
Да, если вызвался viewWillAppear, то viewDidAppear вызовется следом, если только процесс не был прерван (например, аварийно).
1. Основные этапы жизненного цикла:
viewDidLoad — загрузка представления (вызывается один раз).
viewWillAppear — перед появлением на экране.
viewDidAppear — после появления.
viewWillDisappear — перед исчезновением.
viewDidDisappear — после исчезновения.
2. Пример последовательности:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("View скоро появится")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("View появилось")
}3. Исключения:
Если приложение аварийно завершится между вызовами.
Если view не была добавлена в иерархию окон.
Вывод:viewDidAppear гарантированно вызывается после viewWillAppear в нормальных условиях.