2017-02-04 13 views
-1

制約を使用してカスタムUINavigationBarを作成しました。私はそれに戻るボタンを追加するのに問題があります。私はちょうどUIボタンを作成し、それを上に重ねることができますが、私がしなければそれをやりたくありません。カスタムUINavigationBarに戻るボタンを追加する方法

ここに関連するコードが使用されています。

let navBar: UINavigationBar = { 


    let myNav = UINavigationBar() 

    myNav.translatesAutoresizingMaskIntoConstraints = false 

    return myNav 

    }() 


func setUpNavBarView(){ 


self.navBar.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true 
self.navBar.topAnchor.constraint(equalTo: view.topAnchor as NSLayoutAnchor<NSLayoutYAxisAnchor>).isActive = true 
self.navBar.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true 
self.navBar.heightAnchor.constraint(equalToConstant: 60).isActive = true 

    self.navBar.barTintColor = UIColor.red 

    self.navBar.isTranslucent = false 


} 
+0

あなたはナビゲーションコントローラ内の前のビューコントローラを持っていますか? – MacStation

+0

私は、前のviewControllerがスタックの最初のものになるので、これがバックボタンを追加するように強制することを考えていますか? –

+0

これは、以前のView ControllerをNavigation Controllerに追加することで、前のView Controllerの名前をデフォルトにするBackボタン、またはnilの場合はBackを持つはずです。 – MacStation

答えて

0
lazy var backButton: UIBarButtonItem = { 
    let button = UIBarButtonItem(image: "Image", style: .plain, target: self, action: #selector(backButtonTapped)) 
    return button 
}() 

navigationItem.setLeftBarButton(backButton, animated: false) 

func backButtonTapped() { 
    //Do transition here 
} 
+0

viewDidLoadにnavigationItem.setLeftBarButton(backButton、animated:false)を挿入しますか? –

+0

技術的には、VCのライフサイクルでいつでも行うことができますが、ビューが表示されたときに必要な場合は、viewDidLoadが良い点です。 – JustinM

+0

あなたのコードをテストしたところエラーはありませんでしたが、ボタンが表示されませんでした。私はそれが "画像"と言う場所にテスト画像を置く。私はviewControllerでちょっと遊びに行くつもりです –

関連する問題