// // DatePickerViewController.swift // GMERemittance // // Created by gme_2 on 01/10/2018. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved. // import UIKit class DatePickerViewController: UIViewController { @IBOutlet weak var fromTextfield: UITextField! @IBOutlet weak var toTextfield: UITextField! var completion: ((_ from: String?, _ to: String?) -> ())? var fromDate: String? var toDate: String? var _fromDate: Date? { didSet { self.toDatePicker.minimumDate = _fromDate self.toDatePicker.maximumDate = Date() } } var _toDate: Date? let fromDatePicker = UIDatePicker() let toDatePicker = UIDatePicker() override func viewDidLoad() { super.viewDidLoad() self.setupToDatePicker() self.setupFromDatePicker() self.fromDatePicker.date = Date() self.handleFromDatePicker(sender: fromDatePicker) // Do any additional setup after loading the view. } // IBActions @IBAction func cancel(_ sender: Any) { self.view.endEditing(true) self.dismiss(animated: true, completion: nil) } @IBAction func searcg(_ sender: UIButton) { self.view.endEditing(true) self.dismiss(animated: true, completion: { self.completion?(self.fromDate, self.toDate) }) } // private functions private func setupFromDatePicker() { self.fromDatePicker.datePickerMode = .date self.fromTextfield.inputView = fromDatePicker fromDatePicker.maximumDate = Date() self.fromDatePicker.addTarget(self, action: #selector(handleFromDatePicker(sender:)), for: .valueChanged) } @objc private func handleFromDatePicker(sender: UIDatePicker) { self._fromDate = sender.date let dateFormatter = DateFormatter() dateFormatter.dateFormat = AppConstants.dateFormat let date = dateFormatter.string(from: sender.date) self.fromTextfield.text = date self.fromDate = date } private func setupToDatePicker() { self.toDatePicker.datePickerMode = .date self.toTextfield.inputView = toDatePicker toDatePicker.maximumDate = self._fromDate self.toDatePicker.addTarget(self, action: #selector(handleToDatePicker(sender:)), for: .valueChanged) } @objc private func handleToDatePicker(sender: UIDatePicker) { self._toDate = sender.date let dateFormatter = DateFormatter() dateFormatter.dateFormat = AppConstants.dateFormat let date = dateFormatter.string(from: sender.date) self.toTextfield.text = date self.toDate = date } }