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
}
