У мене є 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
натискаєте контролер подання деталей до стека навігації, вам зовсім не потрібно змінювати , він автоматично використовуватиме невеликий заголовок, а потім повернеться до великого, як тільки ви повернетесь до контролера кореневого перегляду, наскільки я знаю