Eu tenho um UINavigationController
com o valor padrão dele navigationBar.prefersLargeTitles = true
.
Estou mudando isso para false
quando push
entrar em uma nova cena, vamos chamá-lo ( DetailsViewController
), alterando-o para viewWillDisappear
.
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.navigationBar.prefersLargeTitles = false
}
Agora DetailsViewController
estou usando willMove(to parent:)
.
override func willMove(toParent parent: UIViewController?) {
navigationController?.navigationBar.prefersLargeTitles = true
}
Para voltar para títulos grandes.
Observe os instantâneos anexados de como o iOS 13 faz isso com o iOS 12 , considerando que o iOS 12 é o comportamento correto.
iOS 13 :
iOS 12 :
largeTitleDisplayMode
para . automatic
e você deve obter a transição desejada.
navigationController?.navigationItem.largeTitleDisplayMode = .automatic
.prefersLargeTitles
nada ao empurrar um controlador de exibição de detalhes para a pilha de navegação, ele usará automaticamente um título pequeno e depois voltará para o grande quando voltar ao controlador de exibição raiz, tanto quanto eu sei