【Swift】ViewController間でデータを渡す方法

Tab Bar ControllerNavigation Controllerを使って、画面遷移を実装する。

図のようにTab Bar Controller、Navigation Controller、View Controllerと3つの構成の場合を考える。

この構成の時に、データをView Controller間でやり取りするにはどうすれば良いのか調べてみた。

結論としては、以下の通り。

  1. Tab Bar ControllerでNavigation Controllerを指定して取り出す
  2. Navigation ControllerでView Controllerを指定する
  3. View Controllerのプロパティに値を渡す

コードにすると以下の通りだ。

let navController = self.tabBarController?.viewControllers![1] as! UINavigationController
let vc = navController.topViewController as! ViewController
vc.foodChoise = categoryList[row]

self.tabBarController?.viewControllers![1]で配列の添え字を指定する。

今回は3つのTabからなるので、0-2の範囲で指定する。

以上、記事にするとシンプルだけどこれを調べるのに時間がかかってしまったのでまとめておきたいと思った次第です。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog