2016-11-16 90 views
1

我有一個設置,在tableViewController中傳遞信息(所選單元格的索引),以便目標UIViewController可以通過調用數組中的相應索引在標籤上顯示一些文本信息。這一切正常工作。但是,有3個部分,我希望目標UIViewController知道哪一部分被選中。 (即選擇第1部分中的第一個單元格和第2部分中的第一個單元格都返回索引0,但我需要它是可微分的)。我想過傳遞選定部分的值(然後在目標UIViewController中設置一個if/else語句),但我不確定如何正確執行該操作。 這裏是當前代碼我對非分化指數通過:如何獲得didSelectRowAt IndexPath來區分節?

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     let indexPath = self.tableView.indexPathForSelectedRow 
     let rowSelectedd = indexPath?.row 
     let destViewController: Controller = segue.destination as! Controller 
     destViewController.rowSelected = rowSelectedd! 
    } 

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
     performSegue(withIdentifier: "rowSelected", sender: rowSelectedd) 
    } 

基本上,如何傳遞所選擇的小區的區段的值?

+0

'didSelectRowAt'方法中的'rowSelectedd'是什麼?這甚至不會編譯。 – rmaddy

回答

1

如果目標控制器需要兩個行和選定行的部分,然後使用IndexPath屬性而不是Int屬性,並通過整個indexPath而不是隻indexPath.row

但爲什麼目標控制器需要知道索引路徑?這是沒有意義的。爲什麼不將該索引路徑的實際數據(從數據模型)傳遞到目標控制器?

+0

這是因爲該單元格中的數據來自一堆數組(全部來自同一索引)的迭代。我只是想在更大的頁面上顯示它們,所以我想我只是用該indexpath.row值遍歷相同的數組。我將如何轉移數據呢? –

+0

1)你的數據不應該在一堆數組中。它應該在一個數組中。 2)要傳遞數據而不是索引路徑,請爲數據創建屬性,而不是行或索引路徑。 – rmaddy

+0

你指的是一個多維數組嗎?因爲我的數據來自於查詢,所以從數據庫中拉出來,查詢對象的不同屬性被附加到不同的數組中。不知道我會怎麼做,沒有一堆數組,除非你的意思是多維的? –