朧の.Netの足跡
問合せ先:support@oborodukiyo.info サイト内検索はこちら
Swift UITabBarControllerでコードからタブを切り替える方法





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
    }
        








良いやや良い普通やや悪い悪い

投稿日時評価コメント