I have a UINavigationController
with default value of it\'s navigationBar.prefersLargeTitles = true
.
I am switching that to false
I had the same issue and had to place a NavigationItem on the second ViewController's storyboard. My NavigationItem was being created automatically by the segue and its prefersLargeTitle
in the viewDidLoad()
was not finished creating before the view appeared. Adding a NavigationItem to the storyboard fixed this issue and allowed me to set the prefersLargeTitle
in the storyboard's properties menu.
In my case this problem was occurring during a segue to a view controller which is a child of a UITabBarController
. Setting largeTitleDisplayMode
on the child view controller was not enough to fix this bug.
I have solved the issue by adding a navigation item to the UITabBarController scene and setting largeTitleDisplayMode
as .never
there.
What you're doing was always wrong. You should set prefersLargeTitles
to true
once for the navigation bar and never touch it again.
The way to change what each view controller does about large titles as it appears is that that view controller sets its own navigationItem
(in its viewDidLoad
) to have the desired largeTitleDisplayMode
. So if the first v.c. has .always
and the second has .never
everything will be smooth.