0

私はこれらのフローでストーリーボードを持っています。私はSWRevealViewControllerを使って各ナビゲーションコントローラにナビゲートしています。ナビゲーションコントローラーの上書きボタンを無効にする

- Navigation Controller 1 --> View Controller Initial (Home) --> View Controller Target 
- Navigation Controller 2 --> View Controller X --> View Controller Y --> View Controller Target 
- Navigation Controller 3 --> View Controller M --> View Controller Target 

ビューコントローラターゲットから、各フローに、私はそれがビューコントローラの初期(ホーム)にバックアップし、メモリ上のオブジェクトを解放することができるようにその背中のボタンを無効にしたいです。

可能な方法はありますか?どんな助けもありがとう。ありがとうございました。

ビュー・コントローラのターゲットで戻るボタンのアクションについては
+0

** View Controller Initialに戻ることができるように、その戻るボタンを無効にしたい**、UはここでnavigationCのrootControllerを意味します。 –

+0

ええ、それぞれのフローでView Controller TargetからNavigation Controller 1に行きたいです。 –

答えて

6

まずあなたがそれセレクターでカスタム戻るBarButtonと背中のボタンを交換する必要があります。

self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .Done, target: self, action: #selector(self.backToInitial(_:))) 

func backToInitial(sender: AnyObject) { 
    self.navigationController?.popToRootViewControllerAnimated(true) 
} 

あなたがswift 3.0を実行している場合、selector構文は次のようです。

self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .Done, target: self, action: #selector(self.backToInitial(sender:))) 

編集:SWRevealViewControllerについてははこのようにしてみてください。

let revealController = self.revealViewController; 
let vc = self.storyboard?.instantiateViewControllerWithIdentifier("InitialViewController") as! InitialViewController 
let navigationController = UINavigationController(rootViewController: vc) 
revealController.pushFrontViewController(navigationController, animated:true) 
+0

こんにちは、私の質問にお答えいただきありがとうございます。それは動作しますが、私は、各フローに異なるNavigation Controllerがあることに言及するのを忘れると思います。私の更新情報を参照してください。どうもありがとうございます。 –

+0

編集済み@NDoc。ありがとうございました。 –

+0

それは動作します!ありがとうございました!しかし、それはスタックメモリ上のオブジェクトで大丈夫ですか? –

0

、これを使用する:

[self.navigationController popToRootViewControllerAnimated:YES]; 
関連する問題