使用datePicker更改cell.textField.text

时间:2015-09-16 22:34:24

标签: swift uitableview uitextfield cell uidatepicker

在我的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 ?

    }

1 个答案:

答案 0 :(得分:2)

有多种方法可以实现您想要的效果,您可以将cellForRowAtIndexPath组合在一起(它与您在pixel*中声明的不同)。

要使用上述方法,您需要知道void*或至少知道行的索引,为此您可以使用indexPathForSelectedRow准确获取所选行,然后设置值你想要的方式如下:

UITableViewDataSource

我希望这对你有所帮助。