2017-01-26 24 views
0

我有具有以下元組的主視圖控制器:通數據童車

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

從我想這個數據傳遞到一個標籤控制器 2名兒童的主視圖控制器:標籤1和標籤2上有標籤,第一個標籤應該在標籤中顯示來自textsForTabs.tab1和第二個textsForTabs.tab2的文本。

這裏有什麼我的選擇和最佳做法?

我試圖實例化tabbarcontroller和在它,得到第一視圖控制器和分配從元組到一個實例變量的值,以後將被用於正在顯示視圖時:像這樣:

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

我建議設置標籤TXT時viewDidLoad被稱爲兩個firstTabControllersecondTabController

這裏firstTabController一個例子:

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