コードソリューション:
// switch to the first tab
tabBarController?.selectedIndex = 0
// reset the view controllers on the "A" stack
let aNavController = self.tabBarController?.viewControllers![0] as! UINavigationController
aNavController.popToRootViewController(animated: false)
// initialize the view controllers
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let a2ViewController = storyboard.instantiateViewController(withIdentifier: "a2")
let a3ViewController = storyboard.instantiateViewController(withIdentifier: "a3")
// push them onto the navigation stack
aNavController.pushViewController(a2ViewController, animated: false)
aNavController.pushViewController(a3ViewController, animated: false)
この現在ハードコードあなたは(この場合は最初なので、インデックス= 0)に切り替えるタブのインデックス。これは、データを渡すか状態を更新するためにView Controller間のセグを実行する場合にも変更する必要があります。
私はちょうど新しいプロジェクトでそれを試しました、そして、あなたが望むのと同じように動作します。
構造の可視化:この場合、
、B3
ビューコントローラ上のボタンは、それらが押されたかのように、コントローラA2
とA1
を表示するために戻って移動する機能で、タブを切り替えてA3
ビューコントローラを開きますナビゲーションスタック上に正常に表示されます。