我有一个主视图控制器,它具有以下元组:
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
但我读到某个地方这很黑,我的其他选择是什么?
答案 0 :(得分:1)
我建议在为viewDidLoad
和firstTabController
secondTabController
时设置标签txt
这是firstTabController的一个例子:
class FirstTabController: UIViewController {
override func viewDidLoad() {
if let tabBarController = self.tabBarController as? MyCustomTabBarController {
self.setLabelTxt(tabBarController.textsForTabs.tab1)
}
}
...
}