Tengo un UINavigationControllervalor predeterminado de es navigationBar.prefersLargeTitles = true.
Estoy cambiando eso a falsecuando entro push  en una nueva escena, vamos a llamarlo ( DetailsViewController), cambiándolo a viewWillDisappear.
override func viewWillDisappear(_ animated: Bool) {
   super.viewWillDisappear(animated)
   navigationController?.navigationBar.prefersLargeTitles = false
}Ahora en DetailsViewControllerque estoy usando willMove(to parent:).
override func willMove(toParent parent: UIViewController?) {
        navigationController?.navigationBar.prefersLargeTitles = true
}Para volver a la transición a títulos grandes.
Observe las instantáneas adjuntas de cómo lo hace iOS 13 con cómo lo hace iOS 12 , teniendo en cuenta que iOS 12 es el comportamiento correcto.
iOS 13 :
iOS 12 :
                    
                        ios
                                swift
                                uinavigationcontroller
                                uinavigationbar
                                
                    
                    
                        Mohmmad S
fuente
                
                fuente



.prefersLargeTitlespara nada cuando empuja un controlador de vista detallada a la pila de navegación, usará automáticamente un título pequeño y luego volverá al grande una vez que regrese al controlador de vista raíz, que yo sepalargeTitleDisplayModea .automaticy deberías obtener la transición deseada.navigationController?.navigationItem.largeTitleDisplayMode = .automaticRespuestas:
Lo que estás haciendo siempre estuvo mal. Se debe ajustar
prefersLargeTitlesa latruevez para la barra de navegación y nunca volver a tocar.La forma de cambiar lo que hace cada controlador de vista sobre títulos grandes como parece es que ese controlador de vista establece su propio
navigationItem(en suviewDidLoad) para tener el deseadolargeTitleDisplayMode. Entonces, si el primer vc tiene.alwaysy el segundo tiene.nevertodo, será suave.fuente
Tuve el mismo problema y tuve que colocar un NavigationItem en el segundo guión gráfico de ViewController. Mi NavigationItem estaba siendo creado automáticamente por el segue y su
prefersLargeTitleen elviewDidLoad()que no se terminó de crear antes de la vista apareció. Agregar un elemento de navegación al guión gráfico solucionó este problema y me permitió configurarloprefersLargeTitleen el menú de propiedades del guión gráfico.fuente
En mi caso, este problema estaba ocurriendo durante un segue a un controlador de vista que es hijo de un
UITabBarController. EstablecerlargeTitleDisplayModeel controlador de vista secundario no fue suficiente para corregir este error.He resuelto el problema agregando un elemento de navegación a la escena UITabBarController y configurando
largeTitleDisplayModecomo.neverallí.fuente