gpt4 book ai didi

ios - 如何从 TableView 中的日期选择器加载文本框中的值

转载 作者:行者123 更新时间:2023-11-29 00:50:58 25 4
gpt4 key购买 nike

我有一个带有 2 个文本框的表格 View 。text1 在 vi​​ewdidload 函数上加载数据。对于text2,输入是日期。我正在使用 tableview didselectrow 方法来显示日期选择器。但是当我从日期选择器中选择日期时,它会在控制台中打印,但不会添加到文本框中。

` 覆盖 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)


}

`如有任何帮助,我们将不胜感激......

最佳答案

您应该尝试对 tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 方法中的单元格进行所有更新。使标签的 text 绑定(bind)到 DatePicker 值。然后,在您的 dataChangedWithDate() 方法中,使用 table.reloadRowsAtIndexPath() 触发相关行的表更新。请注意,我假设 selectedIndex 是您的 Controller 的实例变量,因此您可以在 dateChangedWithDate() 方法中访问它。

tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// Dequeue the cell, perform all of your other tasks for laying out the cell
// {...}

// Bind the label's text to the DatePicker value
dateFormatter.dateStyle = .ShortStyle
dateFormatter.dateFormat = "yyyy-MM-dd"
cell.dateText.text = dateFormatter.stringFromDate(datePicker.date)
}

func dateChangedInDate(sender:UIDatePicker){
// Trigger table update for the selected row
let indexPath = NSIndexPath(forRow: selectedIndex, inSection:0)
tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.None)
}

关于ios - 如何从 TableView 中的日期选择器加载文本框中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38147572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com