2017-02-04 115 views
-1

我使用約束創建了自定義的UINavigationBar。我無法爲其添加後退按鈕。我可以製作一個用戶界面按鈕並將其放置在頂部,但除非必須,否則我不想這樣做。如何添加後退按鈕到自定義的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

我相信是這樣的,通過嚮導航控制器添加一個先前的視圖控制器,它應該有一個後退按鈕,默認爲前一個視圖控制器的名稱,或者返回,如果爲零。 – 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

我把viewIdLoad中的navigationItem.setLeftBarButton(backButton,animated:false)嗎? –

+0

從技術上講,你可以隨時在VC的生命週期中做到這一點,但如果你希望它出現在視圖中,那麼yes,viewDidLoad是一個很好的選擇。 – JustinM

+0

我測試了你的代碼,沒有錯誤,但按鈕沒有顯示出來。我把測試圖像放在它說「圖像」的地方。我打算玩一下viewController –

相關問題