从 swift 中的 DatePicker 获取 date/time

Getting date/time from DatePicker in swift

我为日期选择器创建了一个单独的 class。

import UIKit

protocol MYDatePickerViewControllerDelegate {
    func didFinishSelectingDate(selectedDate:NSDate)
}

class MYDatePickerViewController: UIViewController {

    @IBOutlet weak var containerView: UIView!
    @IBOutlet weak var datePicker: UIDatePicker!
    @IBOutlet weak var navigationBar: UINavigationBar!

    var datePickerDelegate : MYDatePickerViewControllerDelegate?
    var customTransitioningDelegate: MYFadeInFadeOutTransitioning? = MYFadeInFadeOutTransitioning()

    init(){
        super.init(nibName: "MyDatePickerViewController", bundle: NSBundle.mainBundle())

        transitioningDelegate = customTransitioningDelegate
        modalPresentationStyle = .Custom
    }
    convenience init(withSelectedDate date: NSDate) {
        self.init()

    }
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    deinit {
        customTransitioningDelegate = nil
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        setupViewControllerUI()
    }

    func setupViewControllerUI() {
        containerView.tag = kContainerViewTag

    }

    @IBAction func doneButtonTapped(sender: AnyObject) {
        datePickerDelegate?.didFinishSelectingDate(self.datePicker.date)
        print(self.datePicker.date)
        dismissViewControllerAnimated(true, completion: nil)
    }
    @IBAction func cancelButtonTapped(sender: AnyObject) {
        dismissViewControllerAnimated(true, completion: nil)
    }
}

我从另一个 viewController 呈现为

let timePickerViewController = MYDatePickerViewController()
presentViewController(timePickerViewController, animated: true, completion: nil)

它确实从屏幕底部显示如下

现在我试图在用户点击 datePicker 上的完成按钮时获取选定的日期。为此,我正在尝试创建一个委托并从那里获取选择日期。但不能。 我已经将 MYDatePickerViewController 的代表实现到我的另一个 ViewController 作为

在我看来DidLoad

let datePicker = YASDatePickerViewController()
    datePicker.datePickerDelegate = self

然后

func didFinishSelectingDate(selectedDate: NSDate) {
    print(selectedDate)
}

但是我没有得到日期,请指导我。

试试这个,同时从另一个 viewController 呈现为:

let timePickerViewController = MYDatePickerViewController()
timePickerViewController.datePickerDelegate = self
presentViewController(timePickerViewController, animated: true, completion: nil)

并符合viewController您的协议:

class ViewController: UIViewController, MYDatePickerViewControllerDelegate {

休息看起来很好!