我有一个视图控制器,它被 pushed
到导航栏堆栈中。该堆栈具有 navigationBar.prefersLargeTitles = true
,而这个新的视图控制器则具有 navigationBar.prefersLargeTitles = false
。我使用以下代码在被推入堆栈的视图控制器中实现这一点:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.navigationBar.prefersLargeTitles = false
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.navigationBar.prefersLargeTitles = true
}
然而,当我返回到呈现的视图控制器时,从
navigationBar.prefersLargeTitles = false
更改为 navigationBar.prefersLargeTitles = true
的导航栏变化有点卡顿。有没有什么方法可以使这更加流畅?感谢许多。
ViewControllerA
推出ViewControllerB
时,导航栏会收缩并向上移动;它会显示出黑色的“底部”屏幕。能否更改此黑色的颜色?谢谢。 - ajrlewisnavigationController?.navigationBar.prefersLargeTitles = true
而不是navigationItem.largeTitleDisplayMode = .always
。根据大标题显示模式的文档说明:“如果导航栏的 prefersLargeTitles 属性为 false,则此属性无效,并且导航项的标题始终显示为小标题。”在设置prefersLargeTitles = true
时,在这种情况下无需同时设置largeTitleDisplayMode = .always
- 我刚才试过了。 - Scott Carter