2017-02-26 13 views
0

ユーザーがセルをクリックすると、DatePickerでカスタムセルが作成され、セルが日付ピッカー(カスタムセルのイメージが添付されています)を示す完全ビューに展開されます。私は日付ピッカーの選択に基づいて開始時刻を更新しようとしています。TableViewCellが正しく更新されない - iOS、Swift

私は日付ピッカーで時間を変更します。 - それは正しく 日付を更新し、初めて - 二時間はそれに戻って行くことは

元の値だ誰かが、私はこの問題を解決することができるか、提案してくださいもらえますか?以下は

class DailyTimesTableViewCell: UITableViewCell { 


    @IBOutlet weak var startTime: UIButton! 
    @IBOutlet weak var datePicker: UIDatePicker! 

    @IBAction func timePickerChanged(_ sender: UIDatePicker) { 

     startTime.titleLabel?.text = convertDateToString(sender.date) 

    } 
    func convertDateToString(_ dateObject: Date) -> String{ 
     let dateFormatter   = DateFormatter() 
     dateFormatter.timeStyle = .short 
     let dateString = dateFormatter.string(from: dateObject) 
     return dateString 
    } 
} 

以下

error

エラーを示すGIFあなたは以下の方法でボタンのタイトルを設定する必要がカスタムセル

customCell

+0

問題はここにあります - convertDateToString()、それも共有 – Krunal

+0

あなたのコードをカスタムテーブルビューのセルクラスの中に入れますか?セルがデキューしても問題は発生しませんか?ビューを再利用していないのであれば、なぜそれを静的なテーブルビューで作成しないのですか? –

+0

@KrunalBhavsarもconvertDateToString()関数を追加しました – user44776

答えて

1

です。

func setTitle(String?, for: UIControlState)

私はこの問題を複製し、これは私が何回も作る非常に一般的な間違いであるラインに

startTime.setTitle(convertDateToString(sender.date), for: .normal)

startTime.titleLabel?.text = convertDateToString(sender.date)

を交換することによって解決します。

+0

メソッド 'titleLabel'を' setTitle'に置き換えたときに動作します – user44776

関連する問題