2017-07-04 14 views
0

を材料中に戻るボタンを置き換えるために、私は戻るボタンの動作を変更したいと私は怒鳴るような新しいバーボタンと材料のボタンを背面置き換える:どのようスウィフト

のviewDidLoad機能で
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 
}() 

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

[Material](https://github.com/CosmicMind/Material/commit/7560013c51e6498598caf2084b3942e111fb37f0)が修正されました。私は本当にあなたの助けに感謝します。 – javimuu

+0

私の答えを有用なものとしてマークしてください/助けが受け入れられれば助かります –

答えて

0

あなたviewDidLoad()方法でこれを行います。その後、あなたのビューコントローラでbackという名前の関数を定義

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) 

、この機能は、あなたの新しいバックボタンの目的のアクションを実行します

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

を注意個別のボタン変数を定義する必要はありません

** self.navigationItem.backBarButtonItem.hidden = YESが機能しません。self.navigationItem.backBarButtonItem = nil; **

+0

あなたの答えはありがたいですが、マテリアルの戻るボタンは隠れていません。 – javimuu

+0

自分のコードを編集しました。私の解決策を見てください。 –

+0

または、これを試してください: 'navigationItem.hidesBackButton = true'、最初に表示されたコードに行き、必要に応じて変更してください。 –

関連する問題