2017-07-04 44 views
0

替換後退按鈕在材料我想改變後退按鈕的行爲,我波紋管代替後退按鈕材料的新酒吧的按鈕,如:如何斯威夫特

let backButton: UIButton = { 
    let btn = UIButton() 
    btn.setImage(UIImage(named: "prev"), for: .normal) 
    btn.frame = CGRect(x: 0, y: 0, width: 33/2, height: 27/2) 

    return btn 
}() 

viewDidLoad中功能:

override func viewDidLoad() { 
    super.viewDidLoad() 

    backButton.action = { [weak self] in self?.showAlert() } 
    let barButton = UIBarButtonItem(customView: backButton) 
    navigationItem.backButton.isHidden = true 
    navigationItem.leftBarButtonItems = [barButton] 
} 

但因爲它是由UINavigationBarBackIndica coverred我不能點擊新的後退按鈕 torView

如何更換背部按鈕材料。我想保留材料庫,因爲在項目的其他功能我需要材料

在此先感謝您的幫助。

+0

你的問題已解決? –

+0

已修復:[材料](https://github.com/CosmicMind/Material/commit/7560013c51e6498598caf2084b3942e111fb37f0)。我真的很感激你對我的問題的幫助。 – javimuu

+0

請標記我的答案爲有用/接受,如果你發現它有幫助 –

回答

0

viewDidLoad()方法做到這一點:

self.navigationItem.backBarButtonItem.hidden = YES 
    let newBackButton = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.plain, target: self, action: #selector(YourViewController.back(sender:))) 
    self.navigationItem.leftBarButtonItem = newBackButton 
    self.navigationItem.leftBarButtonItem?.image = UIImage(named : "prev") 
    self.navigationItem.leftBarButtonItem?.accessibilityFrame = CGRect(x: 0, y: 0, width: 33/2, height: 27/2) 

然後定義一個在您的視圖控制器命名back功能,該功能將執行所需的操作爲您的新後退按鈕

func back(sender: UIBarButtonItem) { 
     // Perform your custom action 
    } 

無需定義單獨的按鈕變量

**如果self.navigationItem.backBarButtonItem.hidden = YES does not works then replace it with self.navigationItem.backBarButtonItem = nil; **

+0

感謝您的回答,但材料的後退按鈕不隱藏。 – javimuu

+0

我編輯了我的代碼,請看看我的解決方案 –

+0

或者你試試這個:'navigationItem.hidesBackButton = true',首先用我顯示的代碼,然後根據需要進行更改 –