我在AppDelegate
中设置了应用程序的导航栏。
在我的一个ViewController's
中,我试图以不同的方式设置属性 - 但是当我到达其他VC的时候,它仍然有效。
实现此目的的正确方法是什么?
AppDelegate.swift
UINavigationBar.appearance().titleTextAttributes = [
NSFontAttributeName: UIFont(name: "MuseoSans-500", size: 19)!,
NSForegroundColorAttributeName: UIColor.white
]
UINavigationBar.appearance().tintColor = UIColor.white
SharkViewController.swift
// MARK: - View Did Load
override func viewDidLoad() {
super.viewDidLoad()
UINavigationBar.appearance().titleTextAttributes = [
NSFontAttributeName: UIFont(name: "MuseoSans-500", size: 19)!,
NSForegroundColorAttributeName: UIColor.black
]
}
答案 0 :(得分:4)
在viewWillAppear
:
UINavigationBar.appearance().titleTextAttributes = [
NSFontAttributeName: UIFont(name: "MuseoSans-500", size: 19)!,
NSForegroundColorAttributeName: UIColor.black
]
然后当您离开视图时,在viewWillDisappear
中,您只需重置原始值。
答案 1 :(得分:0)
最好的方法是更改 viewController 的 navigationItem
的外观:
let appearance = UINavigationBarAppearance()
appearance.titleTextAttributes = [.font: UIFont(name: "MuseoSans-500", size: 19)!]
navigationItem.standardAppearance = appearance
这只会改变您的 viewController 外观,您可以在 viewDidLoad
或 viewWillAppear
中进行。
答案 2 :(得分:-1)
您还可以在viewDidLoad:
或viewWillAppear
上使用以下代码:
self.navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "MuseoSans-500", size: 19)!,
NSForegroundColorAttributeName: UIColor.black]