将数据从视图控制器传递给tabController子级

时间:2017-01-26 13:16:33

标签: ios swift viewcontroller

我有一个主视图控制器,它具有以下元组:

var textsForTabs  = (tab1: "this is tab one text", tab2 : "this is tab 2 text")

从主视图控制器我希望这些数据传递到带有2个子项的标签控制器:标签1和标签2上有标签,第一个标签应在其标签中显示文字来自textsForTabs.tab1和第二个textsForTabs.tab2。

我有什么选择和最佳做法?

我尝试实例化tabbarcontroller并在其中,获取第一个视图控制器并将tupple中的值分配给实例变量,稍后在显示视图时使用:如下所示:

let tabBarController = segue.destinationViewController as UITabBarController
let ftc = tabBarController.viewControllers![0] as firstTabController
let stc = tabBarController.viewControllers![1] as secondTabController
ftc.setLabelTxt(textsForTab.tab1)
stc.setLabelTxt(textsForTab.tab2)

我从这里得到了:

how to send data from UIViewController to UITabBarControllers first tab in swift ios

但我读到某个地方这很黑,我的其他选择是什么?

1 个答案:

答案 0 :(得分:1)

我建议在为viewDidLoadfirstTabController

调用secondTabController时设置标签txt

这是firstTabController的一个例子:

class FirstTabController: UIViewController {
    override func viewDidLoad() {
      if let tabBarController = self.tabBarController as? MyCustomTabBarController {
        self.setLabelTxt(tabBarController.textsForTabs.tab1)
      }
    }
    ...
}