2017-02-22 53 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

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

相关问题