💨
[Swift]ViwControllerからTabBarViewControllerへ値を渡して画面遷移
はじめに
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