2016-09-10 10 views
0

私はそこに私の希望Viewcontrollersを渡すことによってself.navigationController?.setViewControllersを使用してナビゲーション階層から私のViewControllersを変更することができ、ナビゲーション階層を既存からのViewControllerを交換してくださいしかし、私は私の場合に同じことを行う方法いけない:私は3つのタブがありは(タブの処理中)

A、B、C

を言うと、AからIは、A2・ビュー・コントローラに

をプッシュすることができ、BのB1から私もA2ビューコントローラをプッシュすることができます(セグエを経由してA2のViewControllerをを開く)しかし、私はこのA2にいるときView controller私はA2から戻るなら、ナビゲーション階層のViewコントローラを変更したいldは私を取ったタブAどのように私はこれを行うことができますか?

p.s.私の質問が十分明確でない場合は、私はそれを修正することを教えてください。

答えて

0

あなたは、この場合にViewController Aをインスタンス化することができますpoppopToViewController法を用いて、その特定のviewControllerにshoul。例えば

let viewController = self.storyboard?.instantiateViewControllerWithIdentifier(identifier) as UIViewController 
    self.navigationController!.popToViewController(viewController , animated: true) 

かのようなものを管理することができ、

let viewControllers: [UIViewController] = self.navigationController!.viewControllers as [UIViewController] 
    self.navigationController!.popToViewController(viewControllers[viewControllers.count - 2], animated: true) //manage index or array that can reach you a your viewcontroller A 
あなたのタブバーのタブを取得することができます

(すなわちviewcontrollers)気にいらないよう、

var vcA:FirstViewControllerA = self.tabBarController.viewControllers[0] as FirstViewControllerA! 

と開くことができますそのvcAに。

参考:this so post

関連する問題