こんにちは、株式会社PlaygroundのiOSエンジニア伊原です。
たまに、こんな画面遷移をしたいことがあります。
コードでタブを移動させ、移動先からさらにVCを遷移させるという感じ。
例えば、
飛んできたPush通知を触ったら
お知らせタブの特定のお知らせ詳細ぺージに飛びたい時など。
以下5行をコピペして、3ヶ所に任意の値を入れればOK。
スニペット
let vc = <#ViewController#>()
let rootVC = UIApplication.shared.windows.first?.rootViewController as? UITabBarController
let navigationController = rootVC?.children[<#tabIndex#>] as? UINavigationController
rootVC?.selectedIndex = <#tabIndex#>
navigationController?.pushViewController(vc, animated: false)
解説
<#ViewController#> = 遷移させたいVC
tabIndex = 移動させたいTabのindex番号(1番左が[0]、左から2番目が…)
例えば、左から4番目のタブに移動しつつ、そのさきのHogeViewControllerに移動したい場合は以下のようになります。
サンプル
let vc = HogeViewController()
let rootVC = UIApplication.shared.windows.first?.rootViewController as? UITabBarController
let navigationController = rootVC?.children as? UINavigationController
rootVC?.selectedIndex = 3
navigationController?.pushViewController(vc, animated: false)
ABOUT ME
株式会社Playgroundのサービス
- 無料・簡単・片手でホームページを作成できる自社サービス Rakwi
- Web制作とアプリ開発を学べるオンラインプログラミング講座 Upstairs
- 開発,DX推進支援サービス スタートアッププラン