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