У мене є UINavigationControllerзначення за замовчуванням це navigationBar.prefersLargeTitles = true.
Я перемикаю це на те, falseколи я push вступаю в нову сцену, дозволяє називати це ( DetailsViewController), змінюючи його на viewWillDisappear.
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.navigationBar.prefersLargeTitles = false
}
Зараз DetailsViewControllerя використовую willMove(to parent:).
override func willMove(toParent parent: UIViewController?) {
navigationController?.navigationBar.prefersLargeTitles = true
}
Для переходу назад до великих назв.
Подивіться додані знімки того, як iOS 13 робить це, як iOS 12 робить це, вважаючи iOS 12 правильною поведінкою.
iOS 13 :
iOS 12 :
largeTitleDisplayModeдо. automaticі ви повинні отримати бажаний перехід.
navigationController?.navigationItem.largeTitleDisplayMode = .automatic


.prefersLargeTitlesнатискаєте контролер подання деталей до стека навігації, вам зовсім не потрібно змінювати , він автоматично використовуватиме невеликий заголовок, а потім повернеться до великого, як тільки ви повернетесь до контролера кореневого перегляду, наскільки я знаю