💨

[Swift]ViwControllerからTabBarViewControllerへ値を渡して画面遷移

2022/10/07に公開

はじめに

SwiftでViewControllerからTabBarViewControllerへの画面遷移方法に困ったので書いていきます.

環境

  • Xcode 14.0.1
  • Swift 5.7

やりたいこと

ログインボタンを押したら画面1に遷移

手順1.TabBarViewControllerのStoryboardIDを設定

手順2.画面遷移したいところで以下のコードを追加

let nextVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(identifier: "<TabBarControllerのStoryboardID>") as! UITabBarController
//遷移先の画面をフルスクリーンで表示
nextVC.modalPresentationStyle = .fullScreen
self.present(nextVC, animated: true, completion: nil) // 画面遷移

UIStoryboardのnameには,storyboard名(Main.storyboardの場合は,Main)
instantiateViewControllerのidentifierには,TabBarControllerに設定したStoryboardID

値を渡して画面遷移

let nextVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(identifier: "<TabBarControllerのStoryboardID>") as! UITabBarController
//遷移先の画面をフルスクリーンで表示
nextVC.modalPresentationStyle = .fullScreen

(nextVC.viewControllers![0] as! HogeViewController).hoge = "hoge" //値を渡す

self.present(nextVC, animated: true, completion: nil) // 画面遷移

遷移先の画面のViewControllerには,viewControllers![index]でアクセスすることができます.
Tabの左側の画面からindexを0,1...のように指定できます.

Discussion