UITabBarControllerはタブをユーザが選ぶことによってViewを切り替えますが、ユーザがデータを入力したり、データを選択したりした時にコード上からViewを切り替えたい時があると思います。
そんな時は切り替えたいタイミングで、UIViewControllerに追加されているtabBarControllerプロパティから、selectedIndexに数値を代入することで可能です。
その時番号はタブの左から0、1、2…となっているようです。
ListViewController.swift
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { //UITabBarControllerが自動でセットされているので、それを使って目的のUIViewControllerを取得する。 //なおタブの番号は左から0,1,2…となっているようです。 //下では1番なので、左から2つ目のタブです。 let vc = self.tabBarController!.viewControllers![1] as! ViewController //渡したいデータを移動先のViewに渡しておく vc.nowData = self.myData[indexPath.row] //左から2番目のViewに移動する self.tabBarController?.selectedIndex = 1 }
ViewController.swift
//渡されたデータを受け取るメンバー変数 var nowData: MySetData = MySetData() //viewDidLoadでは、最初に開いた時しかデータをセット出来ないので、 //viewWillAppear(_:)メソッドでデータをセットしている。 override func viewWillAppear(_ animated: Bool) { //受け取ったデータで表示を変える。 txtSetName.text = nowData.setName }