![](/img/trans.png)
[英]Changing the text color of a navigation bar title when “prefersLargeTitles” is set to true
[英]Smooth transition when changing navigation bar "prefersLargeTitles"
我有一個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
有點小問題。 有沒有辦法讓這個更順暢?
非常感謝
您應該通過您想要影響的特定視圖控制器的導航項來更改行為,而不是通過導航控制器直接更改首選項。
// Root UIViewController
class ViewControllerA: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.largeTitleDisplayMode = .always
}
}
// Pushed UIViewController
class ViewControllerB: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.largeTitleDisplayMode = .never
}
}
您可以刪除viewWillAppear
和viewWillDisappear
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.