Uitableview 如何将单元格传递给tableView swift 3中的函数
我想将单元格作为参数传递给函数Uitableview 如何将单元格传递给tableView swift 3中的函数,uitableview,swift3,Uitableview,Swift3,我想将单元格作为参数传递给函数datePickerChanged(发送方:UIDatePicker) 下面是代码的一部分,我想在这里实现这一点,有人能告诉我如何实现这一点吗 class DailyTimesTVC: UITableViewController { override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
datePickerChanged(发送方:UIDatePicker)
下面是代码的一部分,我想在这里实现这一点,有人能告诉我如何实现这一点吗
class DailyTimesTVC: UITableViewController {
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = Bundle.main.loadNibNamed("DailyTimesTableViewCell", owner: self, options: nil)?.first as! DailyTimesTableViewCell
cell.datePicker.addTarget(self, action: #selector(datePickerChanged), for: .valueChanged)
}
func datePickerChanged(sender: UIDatePicker){
// Here I would like to access the cell
}
}
我建议使用回调闭包
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = Bundle.main.loadNibNamed("DailyTimesTableViewCell", owner: self, options: nil)?.first as! DailyTimesTableViewCell
cell.callback = { datePicker in
// do something with the date picker
}
return cell
}
- 在
中创建一个DailyTimesTableViewCell
变量,该变量传递回调
实例UIDatePicker
var callback : ((UIDatePicker) -> ())?
- 在
中,将观察者添加到DailyTimesTableViewCell
awakeFromNib
datePicker.addTarget(self, action: #selector(datePickerChanged), for: .valueChanged)
- 在
中添加调用回调的操作方法DailyTimesTableViewCell
func datePickerChanged(sender: UIDatePicker) { callback?(sender) }
- 在
InDailyTimesTVC
中分配回调闭包cellForRow
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = Bundle.main.loadNibNamed("DailyTimesTableViewCell", owner: self, options: nil)?.first as! DailyTimesTableViewCell cell.callback = { datePicker in // do something with the date picker } return cell }
是否有任何特殊原因需要为单元格使用额外的笔尖?您可以在Interface Builder的表格视图中直接创建多个单元格。根据您在第二点中要求添加观察者的回答,我们如何在
DailyTimesTableViewCell
中使用viewDidLoad
,因为该类是UITableViewCell
的子类,并且UITableViewCell
没有viewDidLoad
@vadian,非常有效,谢谢!!