2016-07-01 3 views
0

2つのtextbox.text1を持つtableviewがviewdidload関数のデータを読み込みます。テキスト2の場合は 、入力は日付です。私はdatepickerを表示するためにtableview didselectrowメソッドを使用しています。 DatePickerから日付を選択すると、コンソールには印刷されますが、テキストボックスには追加されません。テーブルビューのdatepickerからテキストボックスに値をロードする方法

`オーバーライドの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) 


} 

` ....

答えて

1

あなたがすべての更新を行ってみてくださいセルはtableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCellメソッド内にあります。ラベルのtextDatePicker値にバインドされているようにします。次に、dataChangedWithDate()メソッド内で、table.reloadRowsAtIndexPath()を使用して問題の行の表の更新をトリガーします。私はselectedIndexがあなたのコントローラのインスタンス変数であると仮定しているので、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) 
} 
+0

おかげで多くのことを... ... – thipoo24

+0

問題ありません。喜んで助けてください。 –

0
create Variable to store data value. 
// var dateTime = "" 
//cellForIndexMethod 
cell.dateText.text = dateTime 


func dateChangedInDate(sender:UIDatePicker){ 

dateFormatter.dateStyle = .ShortStyle 
dateFormatter.dateFormat = "yyyy-MM-dd" 
dateTime = dateFormatter.stringFromDate(datePicker.date) 
let indexPath = NSIndexPath(forRow: selectedIndex, inSection:0) 

//Reload table 
    self.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.None) 

} 
+0

それが魅力のように働いたあなたの努力のおかげで...あなたの努力のための – thipoo24

関連する問題