По мне, вы должны создать расширение UIViewController.У него будет метод, который будет содержать код для изменения панели навигации для этого контроллера представления.Таким образом, вы можете изменить панель навигации для требуемого экрана, и она будет очень гибкой в плане дизайна.
Например, расширение ниже установит прозрачную панель навигации,
extension UIViewController {
func setTransparentNavBar(_ target: UIViewController, leftAcion: Selector, rightAction: Selector) {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
self.navigationItem.titleView = UIImageView(image: UIImage(named: "icon_2"))
let leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "icon_1"), style: UIBarButtonItem.Style.plain, target: target, action: leftAcion)
//self.navigationItem.setLeftBarButton(leftBarButtonItem, animated: true)
self.navigationItem.leftBarButtonItem = leftBarButtonItem
let rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "icon_3"), style: UIBarButtonItem.Style.plain, target: target, action: rightAction)
//self.navigationItem.setRightBarButton(rightBarButtonItem, animated: true)
self.navigationItem.rightBarButtonItem = rightBarButtonItem
}
}
Всякий раз, когда требуется эта конфигурация, вызывайте этот метод в viewDidLoad()
Надеюсь, это поможет.