カスタムナビゲーションバーを作成しようとしています。Swift:カスタムUINavigationBarを作成し、カスタムの戻るボタンを追加するにはどうすればよいですか?
私はそうのようにviewWillAppearで元navigationBarを隠しています:
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.isNavigationBarHidden = true
}
私はそうのようなUINavigationBarをサブクラス化しています:のviewDidLoadで
let navBar: UINavigationBar = {
let view = UINavigationBar()
view.backgroundColor = .clear
view.isTranslucent = true
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
を私は)(setupNavBarを呼び出しています:
func setupNavBar() {
view.addSubview(navBar)
self.navBar.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 80)
let backButton = UIBarButtonItem(image: UIImage(named:"backThick"), style: .plain, target: self, action: #selector(popControllerOffStack))
}
問題は、隠されている元のnavigationBarにbackButtonが追加されていることです。これは、私がナビゲーションバーを間違って作成していると思います。どのようにボタンをnavBarに追加するのですか?
更新されたコード(まだ動作していない):
class CustomNavBar: UINavigationBar {
override init(frame: CGRect) {
super.init(frame: frame)
self.backgroundColor = .red
}
}
// In the viewController
let navBar = CustomNavBar()
override func viewDidLoad() {
super.viewDidLoad()
setupNavBar()
}
func setupNavBar() {
view.addSubview(navBar)
navBar.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 80)
let backButton = UIBarButtonItem(image: UIImage(named:"backThick"), style: .plain, target: self, action: #selector(popControllerOffStack))
self.navigationItem.leftBarButtonItem = backButton
}
おかげで、あなたが編集を見ることができます。私は明らかにここに従っていない... –