Ios Swift 3使用UINavBar按钮显示以编程方式创建的日期选择器

Ios Swift 3使用UINavBar按钮显示以编程方式创建的日期选择器,ios,swift,datepicker,Ios,Swift,Datepicker,我以编程方式创建了一个UIPickerView,当前我从UITextField调用它。相反,当用户按下导航栏上以编程方式创建的按钮时,我想调用日期选择器。这就是我的datePicker代码当前的样子: func doDatePicker(){ // DatePicker self.datePicker = UIDatePicker(frame:CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 216

我以编程方式创建了一个
UIPickerView
,当前我从
UITextField
调用它。相反,当用户按下导航栏上以编程方式创建的按钮时,我想调用
日期选择器。这就是我的
datePicker
代码当前的样子:

func doDatePicker(){
    // DatePicker
    self.datePicker = UIDatePicker(frame:CGRect(x: 0, y: 0, width:     self.view.frame.size.width, height: 216))
    self.datePicker?.backgroundColor = UIColor.white
    self.datePicker?.datePickerMode = UIDatePickerMode.dateAndTime
    HVACText.inputView = self.datePicker

    // ToolBar
    let toolBar = UIToolbar()
    toolBar.barStyle = .default
    toolBar.isTranslucent = true
    toolBar.tintColor = UIColor(red: 92/255, green: 216/255, blue:  255/255, alpha: 1)
    toolBar.sizeToFit()

    // Adding Button ToolBar
    let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(HVACViewController.doneClick))
    let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
    let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(HVACViewController.cancelClick))
    toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
    toolBar.isUserInteractionEnabled = true
    HVACText.inputAccessoryView = toolBar

}
我可以使用该按钮调用一个通用的日期选择器,但我希望用户可以使用“完成”和“取消”按钮。我还希望日期选择器出现在UITableView的底部。我不想离开这景色

任何帮助都将不胜感激

这是所要求的屏幕截图。请注意,该界面是一个正在进行的工作,文本字段将消失


我找到了解决方案,并将代码发布在这里:

class HVACViewController:  UIViewController, UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate, UNUserNotificationCenterDelegate {

    @IBOutlet weak var HVACTable: UITableView!
    @IBOutlet weak var reminderCell: UITableViewCell!

    let dateFormatter = DateFormatter()
    let locale = NSLocale.current
    var datePicker : UIDatePicker!
    let toolBar = UIToolbar()

    override func viewDidLoad() {
        super.viewDidLoad()


        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(addTapped))

        self.HVACTable.reloadData()
        //doDatePicker()
    }

    func addTapped(){
        doDatePicker()
    }



    func doDatePicker(){
        // DatePicker
        self.datePicker = UIDatePicker(frame:CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 200))
        self.datePicker?.backgroundColor = UIColor.white
        self.datePicker?.datePickerMode = UIDatePickerMode.dateAndTime
        datePicker.center = view.center
        view.addSubview(self.datePicker)

        // ToolBar

        toolBar.barStyle = .default
        toolBar.isTranslucent = true
        toolBar.tintColor = UIColor(red: 92/255, green: 216/255, blue: 255/255, alpha: 1)
        toolBar.sizeToFit()

        // Adding Button ToolBar
        let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(HVACViewController.doneClick))
        let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
        let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(HVACViewController.cancelClick))
        toolBar.setItems([cancelButton, spaceButton, doneButton], animated: true)
        toolBar.isUserInteractionEnabled = true

        self.view.addSubview(toolBar)
        self.toolBar.isHidden = false


    }


    func doneClick() {
        let dateFormatter1 = DateFormatter()
        dateFormatter1.dateStyle = .medium
        dateFormatter1.timeStyle = .none
        setNotification()
        //self.datePicker.resignFirstResponder()
        datePicker.isHidden = true
        self.toolBar.isHidden = true


    }

    func cancelClick() {
        datePicker.isHidden = true
        self.toolBar.isHidden = true

    }

发生了什么?请提供最终用户界面的屏幕截图。