Large title to small title switch in navigation bar is not smooth iOS 13, sticky

守給你的承諾、 提交于 2020-07-14 03:00:17

问题


I have a UINavigationController with default value of it's navigationBar.prefersLargeTitles = true .

I am switching that to false when I push into a new scene lets call it (DetailsViewController), by changing it into the viewWillDisappear .

override func viewWillDisappear(_ animated: Bool) {
   super.viewWillDisappear(animated)
   navigationController?.navigationBar.prefersLargeTitles = false
}

Now in DetailsViewController I am using willMove(to parent:) .

override func willMove(toParent parent: UIViewController?) {
        navigationController?.navigationBar.prefersLargeTitles = true
}

To transition back to large titles .

Observe the attached snapshots of how iOS 13 doing it with how iOS 12 is doing it, considering iOS 12 is the correct behavior.

iOS 13 :

iOS 12 :


回答1:


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.




回答2:


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.




回答3:


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.



来源:https://stackoverflow.com/questions/58300644/large-title-to-small-title-switch-in-navigation-bar-is-not-smooth-ios-13-sticky

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!