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