2017-02-22 68 views
-3

我用不同的自定義單元格創建了一個table view。我有一個userTableView類包含表視圖,我還創建了不同的類,如ageDataPickerVtableViewCell,每個類與一個xib文件關聯,並表示表中的單元格。我不知道如何設計應用程序,以便能夠從整個單元獲取輸入並將它們重新組合爲一個類,以便能夠將請求發送到服務器。例如,在dataPicker上選擇日期時,對於實際設計,我只能在ageDataPickerVtableViewCell上訪問日期。我應該創建一個userTableView類中的每個元素的插座,以便能夠訪問一個類中的所有選定值?設計一個帶有自定義單元格的tableView

+0

https://www.ralfebert.de/tutorials/ios -swift-uitableviewcontroller /瀏覽一些關於UITableView的教程。在這裏我提到一個也是很好的教程 –

+0

它沒有幫助。我創建了多個表,並沒有問題。 Ny問題是如何在不同的自定義單元之間共享信息。想象一個包含UIPickerView的單元格和另一個包含UILabel的自定義單元格。我想在UIPicker值更改時更改標籤值。我可以設置UIPicker的UIlabel類es委託,但我不確定這是個好主意...... – jana

+0

您應該以更正確的方式更新您的問題。 '設計一個tableView與自定義單元格'這個標題導致我分享的鏈接 –

回答

0

也許你應該使用閉包。將該閉包傳遞給您的單元格,並在執行動作時調用此閉包。

例如在你geDataPickerVtableViewCell創建一個變量var onDataSelect: (Any) ->()。在func pickerView(UIPickerView, didSelectRow: Int, inComponent: Int)你應該調用這個閉包。 (我假設你使用的是UIPickerView

編輯

class ageDataPickerVtableViewCell: UITableViewCell, UIPickerViewDelegate { 
    var onDataSelect: ((Any) ->())! 

    // Your code (you have to assign self to picker's delegate in this class) 

    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
     let optionSelected = // Retrieve your selection 
     onDataSelect(optionSelected) 
    } 
} 

而在UITableViewControllerUITableViewControllerDataSource

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: dataPickerIdentifier) 
     if let cell = cell as? ageDataPickerVtableViewCell { 
      cell.onDataSelect = { data in 
       // Save that data (you can use indexPath to know which field of the form belongs) 
      } 
     } 

     return cell; 
} 
+0

我不明白你的意思 – jana

+0

我只是更新我的答案,我希望它可以幫助你 –

相關問題