2017-07-21 3 views
0

私はナビゲーションバー(ナビゲーションコントローラのナビゲーションバーではありません)を持っています。左に私はBar Button Itemをドラッグし、それをIBActonでView Controllerに接続しました。アクションが実行されます。バーボタンアイテムがアクションを実行できないSwift

navigationController?.popViewController(animated: true). 

を繰り返しますが、私は、階層構造に埋め込まれたナビゲーションコントローラを持っているが、私は、ナビゲーションコントローラのナビゲーションバーを隠し、自分を使用しています。それがそれと関係があるかどうかはわかりません。しかし、Bar Button Itemsアクションは、一貫して実行されていません。時々私がそれをタップすると、ビューがポップ(削除)され、何も何も起こりません。もし誰かがこれを経験して何らかの洞察力を持っていれば、私は本当にそれを感謝します!

関連するコード:

@IBAction func backTapped(_ sender: Any) { 
    navigationController?.popViewController(animated: true) 
} 
+0

これに関連するコードを追加します。 – KKRocks

+0

バーボタンのフレームは何ですか?バーボタンに共通の落とし穴があり、時にはタップするには小さすぎることもあります。特にデバイスで作業している場合。 – erenkabakci

+0

デバッグポイントを追加し、そのメソッドの呼び出しをチェックするかどうかを確認します。 – KKRocks

答えて

0

だから私は問題を発見しました。それは私がView Controller間でセグをする方法でした。使用しているアプリケーションの周りをナビゲートする

let storyboard = UIStoryboard(name: "Settings", bundle: nil) 
    let viewControllerSettings = storyboard.instantiateViewController(withIdentifier: "SettingsID") as! SettingsViewController 
    self.show(viewControllerSettings, sender: self) 

これは問題でした。そのストーリーボード内のナビゲーションコントローラへの接続を維持しながら、新しいストーリーボードに適切にナビゲートするには、ナビゲーションコントローラ自体にセグメンテーションする必要があります。

let storyboard = UIStoryboard(name: "Settings", bundle: nil) 
    let viewControllerSettings = storyboard.instantiateViewController(withIdentifier: "SettingsNavControllerID") as! UINavigationController 
    self.show(viewControllerSettings, sender: self) 

我々はストーリーボードにナビゲーションコントローラにごsegueingをstoryboardIDを追加し、それを通過してきた。この方法は:だから、それは次のように実行する必要があります。ナビゲーションコントローラをセグしないと、ナビゲーションコントローラが正しくロードされなかったため、実行できません。

navigationController?.popViewController(animated: true). 

関連する問題