我的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 12是正确的行为,请观察所附的快照,了解iOS 13的运行方式和iOS 12的运行方式。
iOS 13:
iOS 12:
largeTitleDisplayMode至 。automatic并且您应该获得所需的过渡。
navigationController?.navigationItem.largeTitleDisplayMode = .automatic


.prefersLargeTitles据我所知,将明细视图控制器推入导航堆栈时无需进行任何更改,它会自动使用一个小标题,一旦返回到根视图控制器,便会使用一个大标题。