You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

88 lines
2.7 KiB

//
// 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
}
}