我有一个带有2个textbox.text1的tableview加载viewdidload函数的数据 . 对于text2,输入是日期 . 我正在使用tableview didselectrow方法来显示datepicker . 但是当我从datepicker中选择日期时,它在控制台中打印但未添加到文本框中 .
`override func tableView(tableView:UITableView,didSelectRowAtIndexPath indexPath:NSIndexPath){
selectedIndex = indexPath.row
let screenSize: CGRect = UIScreen.mainScreen().bounds
datePickerContainer.frame = CGRectMake(20, 200, 290, 200.0)
datePickerContainer.backgroundColor = UIColor.whiteColor()
datePickerContainer.layer.borderWidth = 2.0
datePickerContainer.layer.borderColor = UIColor.lightGrayColor().CGColor
var pickerSize : CGSize = datePicker.sizeThatFits(CGSizeZero)
datePicker.frame = CGRectMake(0.0, 20, pickerSize.width, 160)
//datePicker.setDate(NSDate(), animated: true)
//datePicker.maximumDate = NSDate()
datePicker.datePickerMode = .Date
datePicker.addTarget(self, action: "dateChangedInDate:", forControlEvents: UIControlEvents.ValueChanged)
datePickerContainer.addSubview(datePicker)
var doneButton = UIButton()
doneButton.setTitle("Done", forState: UIControlState.Normal)
doneButton.setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)
doneButton.addTarget(self, action: Selector("dismissPicker:"), forControlEvents: UIControlEvents.TouchUpInside)
doneButton.frame = CGRectMake(130.0, 160, 70.0, 37.0)
datePickerContainer.addSubview(doneButton)
self.view.addSubview(datePickerContainer)
}
func dateChangedInDate(sender:UIDatePicker){
dateFormatter.dateStyle = .ShortStyle
dateFormatter.dateFormat = "yyyy-MM-dd"
let selectedDate = dateFormatter.stringFromDate(datePicker.date)
firstIndex = NSIndexPath(forRow: selectedIndex, inSection: 0)
let cell = tableView.cellForRowAtIndexPath(firstIndex) as! mytableviewcell
cell.dateText.text = dateFormatter.stringFromDate(datePicker.date)
// print(selectedDate)
}
`任何帮助表示赞赏....
2 回答
您应该尝试对
tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
方法中的单元格进行所有更新 . 使它成为您的标签的text
绑定到DatePicker
值 . 然后,在dataChangedWithDate()
方法内,使用table.reloadRowsAtIndexPath()
触发相关行的表更新 . 请注意,我假设selectedIndex
是控制器的实例变量,因此您可以在dateChangedWithDate()
方法内访问它 .