2016-08-24 9 views
0

自分専用のルートを持つナビゲーションコントローラが複数あるiOSアプリがあります。すべてのコントローラをすべてのスタックから削除

構造である:

からNavController(ルート:ログイン)

- > TabBarController(ホーム) - (検索) - (プロフィール)

------>からNavController (ルート:ホーム)

-------------> TableController

-----------------> DetailController

------>からNavController(ルート:検索)

------>からNavController(ルート:プロフィール)(ここでログアウトボタン)

私は中の午前ときこれらのうち(つまりProfile)の場合、最初のログイン画面に移動するためのログアウトボタンがあります。ログインをロードする前に、すべてのナビゲーションスタックのすべてのコントローラが削除されていることを確認するにはどうすればよいですか?

私はpoptorootviewcontrollerを試してみましたが、それはちょうどあなたがこれを処理するためにNSNotificationCenterを使用することができますプロフィールページ

答えて

0

になります。

ユーザーがログアウトし、使用してアプリにローカル通知をポスト:

NSNotificationCenter.defaultCenter().postNotificationName("kLogOut", object: self) 

を次に各タブのルートビューコントローラでは、その通知をリッスンし、セレクタ機能を実装するための登録は:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(YourViewController.logOutNotificationAction), name: "kLogOut", object: nil) 

func logOutNotificationAction() { 
    self.navigationController?.popToRootViewControllerAnimated(false) 
} 
関連する問題