我有一個TableView顯示來自核心數據庫的數據。 當選擇一行時,我將信息傳遞給func prepareForSugue中的視圖控制器(vc)。從Tableview傳遞數據到TabBar控制器的孩子
問題是vc我傳遞這個信息是一個選項卡欄控制器的一個孩子,並通過使一個segue直接到vc我繞過此選項卡欄控制器,這反過來導致沒有標籤欄在vc。
我的問題是有反正從實現代碼如下數據傳遞到標籤欄控制器的拳頭兒童和保證標籤欄層次得住?
任何輸入讚賞。
泰伯維爲賽格瑞製備:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
if(segue.identifier == "ItemDetailsSegue"){
//initilise new vc and cast as history view controller
var viewcontroller = segue.destinationViewController as History;
// pass the caseNumber we got from didselectRow to History property/instance var
println("Passing case Number to Hisory: \(caseNumberToPAsstoHistory)");
viewcontroller.caseNumberSelected = caseNumberToPAsstoHistory;
}
}
你可以繼續使用tabbar而不是自定義視圖,並讓tabbar顯示你的視圖,但我認爲你已經知道了。除此之外,您可能可以訪問tabBarController的'selectedViewController'屬性,可能已經設置好了。我不知道這是否有效,目前無法嘗試... – luk2302 2015-03-30 23:07:12
謝謝,如果我直接提示Tab Bar,我如何在我的tableview preparForSuugue中實例化選項卡控制器並將數據傳遞給它以便進一步把數據傳給第一個VC子? Ivd將代碼添加到原始問題中以使其更清晰... – dancingbush 2015-03-30 23:14:25
您應該在包含tableview的控制器和帶有標籤欄的控制器之間的故事板中創建一個segue。然後你給這個segue一個你選擇的標識符。在你檢測tableview選擇的代碼中,你可以通過在'self'上調用'performSegueWithIdentifier'觸發segue。那麼你應該可以像你當前那樣訪問tabBarController。 – luk2302 2015-03-30 23:20:37