我有一个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:
您在做什么总是错的。您应该将导航栏的prefersLargeTitles
设置为true
一次,切勿再次触摸它。
更改每个视图控制器对大标题所做的操作的方法是,该视图控制器将自己的navigationItem
(在其viewDidLoad
中)设置为具有所需的largeTitleDisplayMode
。所以如果第一个v.c.具有.always
,第二个具有.never
,一切都会很顺利。