Я пытаюсь создать пользовательскую панель навигации и хочу добавить заголовок слева и значок чата справа.
Вот так
Дизайн пользовательского интерфейса NavBar
но он не показывает ни одного элемента. Цвет фона — единственный работающий пользовательский интерфейс.
Я называю это так
let garageVC = HomeNavController(rootViewController: GarageRouter.assembleModule(), title: "My Garage")
Мой курс навигации
import UIKit
class HomeNavController: UINavigationController {
var tabTitle: String?
init(rootViewController: UIViewController, title: String) {
super.init(rootViewController: rootViewController)
self.tabTitle = title
configure()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
configure()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
configure()
}
private func configure() {
navigationBar.isHidden = false
navigationBar.isTranslucent = false
navigationBar.tintColor = .white
navigationBar.barTintColor = .primary
let nameLabel = UILabel(frame: .zero)
nameLabel.textColor = .white
nameLabel.tintColor = .white
nameLabel.text = tabTitle
navigationItem.leftBarButtonItem = UIBarButtonItem(customView: nameLabel)
let chatButton = UIButton(type: .system)
chatButton.setImage(UIImage(named: "home-chat")?.withRenderingMode(.alwaysOriginal), for: .normal)
navigationItem.rightBarButtonItem = UIBarButtonItem(customView: chatButton)
chatButton.imageEdgeInsets = UIEdgeInsets(top: 0.0, left: 0, bottom: 0, right: -10)
chatButton.addTarget(self, action: #selector(chatClicked), for: .touchUpInside)
}
@objc func chatClicked() {
print("Chat clicked")
}
}
Вывод