概要
あるViewControllerから、NavigationControllerの階層下にある次の画面へShowで遷移する際に値を渡す方法です。
ここで、現在のViewControllerはNavigationControllerの階層下にはなく、値の渡し先はNavigationControllerのroot view controllerであるという前提です。
準備
storyboardでNavigationControllerにIdentifier
をつけてください。
今回は例のため"NavigationController"
としました。
値渡し
.swift
let storyboard: UIStoryboard = self.storyboard!
let nc: UINavigationController = storyboard.instantiateViewController(withIdentifier: "NavigationController") as! UINavigationController
let followingVC = nc.viewControllers[0] as! FollowingViewController
followingVC.variable = self.variable //ここで値渡し
self.present(nc, animated: true, completion: nil) //画面遷移
ちなみに、nc.viewControllers[0]
の部分はnc.topViewController
でも大丈夫だと思います。(root view controllerを指定するという点においては前者の方が分かりやすくていいですが)