Просто создайте собственный класс для панели навигации.как customNavigationBar и xib для UIView, а в вашей xib взять кнопку, установить ее изображение, взять метку и дать ограничения ... И взять UIView на вашем ViewController и поместить его наверх и дать имя класса customNavigationBar
customNavigationBar class
import UIKit
class customNavigationBar: UIView {
//Mark:- Iboutlets
@IBOutlet weak var backButton: UIButton!
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet var containerView: UIView!
//Mark:- Lifecycle
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
}
//Mark:- Function
extension customNavigationBar{
private func commonInit(){
Bundle.main.loadNibNamed("customNavigationBar", owner: self, options: nil)
addSubview(containerView)
containerView.frame = self.bounds
containerView.autoresizingMask = [.flexibleHeight , .flexibleWidth]
}
}
Имя владельца вашего xib-файла должно быть customNavigationBar
Теперь в вашем классе ViewController
class ViewController: UIViewController{
@IBOutlet weak var navigationBar: customNavigationBar!
override func viewDidLoad() {
super.viewDidLoad()
navigationBar.titleLabel.text = "Texas Rangers at"
navigationBar.titleLabel.textColor = .blue
navigationBar.backButton.addTarget(self, action : #selector(backButtonTapped), for: .touchUpInside)
}
@objc func backButtonTapped() {
self.navigationController?.popViewController(animated: true)
}
Теперь в этом представлении customNavigationBar вы можете использовать любойviewController нет необходимости каждый раз устанавливать панель навигации в каждом viewController