2015-03-30 24 views
1

我有一個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; 
     } 
    } 
+0

你可以繼續使用tabbar而不是自定義視圖,並讓tabbar顯示你的視圖,但我認爲你已經知道了。除此之外,您可能可以訪問tabBarController的'selectedViewController'屬性,可能已經設置好了。我不知道這是否有效,目前無法嘗試... – luk2302 2015-03-30 23:07:12

+0

謝謝,如果我直接提示Tab Bar,我如何在我的tableview preparForSuugue中實例化選項卡控制器並將數據傳遞給它以便進一步把數據傳給第一個VC子? Ivd將代碼添加到原始問題中以使其更清晰... – dancingbush 2015-03-30 23:14:25

+1

您應該在包含tableview的控制器和帶有標籤欄的控制器之間的故事板中創建一個segue。然後你給這個segue一個你選擇的標識符。在你檢測tableview選擇的代碼中,你可以通過在'self'上調用'performSegueWithIdentifier'觸發segue。那麼你應該可以像你當前那樣訪問tabBarController。 – luk2302 2015-03-30 23:20:37

回答

1

忠告luk2302我實例從它的陣列的視圖控制器的控制器的TabBar第一子和傳遞的數據:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 


     if(segue.identifier == "ItemDetailsSegue"){ 


      var tabBarCOntroller : UITabBarController = segue.destinationViewController as UITabBarController; 

      var destinationViewController_History : History = tabBarCOntroller.viewControllers?.first as History; 

// Set the case number selected property of History vc 
      destinationViewController_History.caseNumberSelected = caseNumberToPAsstoHistory; 



      println("Passing case Number to Hisory: \(caseNumberToPAsstoHistory)"); 


     } 
    } 

感謝您的意見:)

+0

感謝回答它解決了我使用TabBar控制器的第一個VC,但是當我嘗試從頂部VC瞭解它們第二VC,但它給它告訴VC無法投射到的UITabBarController – 2016-05-11 12:11:54

+0

沒問題,很高興它幫助 – dancingbush 2016-05-11 12:15:50

+0

錯誤我有2個的TabBar風險投資我通過數據第一的TabBar VC和,但我不能用同樣的方法將數據傳遞到2 :( – 2016-05-11 12:22:35

相關問題