在我的tableViewCell中,我有一个UITextField调用UIDatePicker(下面的代码)。
我的问题是:我不明白如何在cell.myTextField中传递日期(来自datePicker)(因为它只出现在cellForRowAtIndexPath
方法上)。有人可以帮我吗?
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
//.........
cell.myTextField.addTarget(self, action: "showDatePicker:", forControlEvents: UIControlEvents.EditingDidBegin)
//.........
}
func showDatePicker(sender: UITextField) {
var datePickerView:UIDatePicker = UIDatePicker()
datePickerView.datePickerMode = UIDatePickerMode.Date
sender.inputView = datePickerView
datePickerView.addTarget(self, action: Selector("datePickerValueChanged:"), forControlEvents: UIControlEvents.ValueChanged)
}
func datePickerValueChanged(sender:UIDatePicker) {
var dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = NSDateFormatterStyle.NoStyle
dateFormatter.timeStyle = NSDateFormatterStyle.FullStyle
//dateTextField.text = dateFormatter.stringFromDate(sender.date)
//How to load my cell.myTextField.text with the sender.date ?
}
答案 0 :(得分:2)
有多种方法可以实现您想要的效果,您可以将cellForRowAtIndexPath
组合在一起(它与您在pixel*
中声明的不同)。
要使用上述方法,您需要知道void*
或至少知道行的索引,为此您可以使用indexPathForSelectedRow
准确获取所选行,然后设置值你想要的方式如下:
UITableViewDataSource
我希望这对你有所帮助。