2016-03-09 51 views
0

假設的設置是如何將數據從UITableViewController傳遞到另一個UITableViewController? -iOS和斯威夫特2

Navigation Controller - >GradLevelUITableViewController - >DegreeUITableViewController - >View Controller

其中:

  • 數據結構是一樣this one
  • GradLevelUITableViewController包含3個細胞,即Undergrad,Grad,PostGrad
  • DegreeUITableViewController顯示Colleges爲段,Degrees爲行。
  • View Controller包含可滾動的TextView欲瞭解更多信息。

我的問題是,我如何通過數據從GradLevelUITableViewControllerDegreeUITableViewController告訴(特別包含關於選定degree信息以後再次傳遞給TextView什麼選擇名單)我點擊了三個單元格中的一個並顯示其相應的CollegesDegrees(例如,如果Undergrad已被點擊,則只顯示CollegesDegrees代表Undergrad)。

我是新來的iOS和Swift編程,我找不到一個像樣的教程,使用Swift在視圖控制器之間傳遞數據。可能我不知道這個特定「連接」的確切名詞。

我已經試過這些鏈接:這大多是用Objective-C

和其他教程。第一和第二個鏈接似乎是答案,但我不知道如何使用它,以及如何通過我需要的。

+1

請發表您的代碼,向您展示如何從過渡到GradLevelUITableViewController DegreeUITableViewController。有兩種標準方式= presentViewController或使用segues。 – Harris

+0

如果您發佈了代碼,它確實會更容易。但通常情況下,如何在GradLevelUITableViewController中輕按度單元格時,實例化一個新的DegreeUITableViewController並傳入所需的任何信息作爲構造函數參數,然後將該新控制器推入導航堆棧。 – Aurast

回答

0

這手段應該做的伎倆

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

     if let grad = self.grads[indexPath.row] { 
       self.performSegueWithIdentifier("pushDegree", sender: grad) 
     } 
    } 

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

     if segue.identifier == "pushDegree" { 
      guard 
       let degreeVC = segue.destinationViewController as? DegreeViewController, 

      else { 
       return 
      } 
      degreeVC.grad = sender as! Grad 
     } 
相關問題