【问题标题】:How to adjust the date set through UIDatePicker如何调整通过UIDatePicker设置的日期
【发布时间】:2019-12-04 04:56:29
【问题描述】:

我正在使用UIDatePicker 并且能够显示用户从UIDatePicker 中选择的日期。 我想通过单击一些按钮来调整日期并显示下一个/上一个日期,但我不知道如何调整 UIDatePicker 日期。

请帮助我。谢谢你。

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var InputTextField: UITextField!

    private var datePicker: UIDatePicker?


    override func viewDidLoad() {
        super.viewDidLoad()

        datePicker = UIDatePicker()
        datePicker?.datePickerMode = .date
        datePicker?.addTarget(self, action: #selector(ViewController.dateChanged(datePicker:)), for: .valueChanged)

        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.viewTapped(gestureRecognizer:)))

        view.addGestureRecognizer(tapGesture)

        InputTextField.inputView = datePicker


    }


    @objc func viewTapped (gestureRecognizer: UITapGestureRecognizer) {
        view.endEditing(true)
    }


    @objc func dateChanged (datePicker: UIDatePicker) {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "MM/dd/yyyy"

        InputTextField.text = dateFormatter.string(from: datePicker.date)
        view.endEditing(true)
    }

//From here, it's new
    @IBAction func RightArrow(_ sender: UIButton) {
        let date = datePicker!.date
             if let modifiedDate = Calendar.current.date(byAdding: .day, value: 1, to: date) {
               datePicker!.date = modifiedDate
            InputTextField.inputView = datePicker
    }
}

【问题讨论】:

  • 向我们展示您的代码
  • 我添加了我的代码!

标签: swift xcode calendar uidatepicker


【解决方案1】:

如果你想用你想要的日期更新 UIDatePicker,你可以简单地设置 UIDatePicker 的 date 属性。

let date = datePicker.date
if let modifiedDate = Calendar.current.date(byAdding: .day, value: 1, to: date) {
   datePicker.date = modifiedDate
   InputTextField.inputView = datePicker
   let dateFormatter = DateFormatter()
   dateFormatter.dateFormat = "MM/dd/yyyy"

   InputTextField.text = dateFormatter.string(from: datePicker!.date)
}

【讨论】:

  • 感谢您的评论!如果我想在通过 UIDatePicker 选择的日期上添加一天怎么办?例如,使用 UIDatePicker 选择日期“12 月 4 日”。我想创建一个按钮,可以将一天添加到所选日期(Dec4),以便在这种情况下通过单击按钮来显示“December5th”。
  • 我已经更新了答案。请在您的按钮操作中尝试使用狙击手,如果您觉得有帮助,请接受答案。
  • 非常感谢您的帮助!我刚刚在 UIButton 函数下添加了您的代码,但应用程序崩溃了......(我更新了我的代码↑)``` @IBAction func RightArrow(_ sender: UIButton) { let date = datePicker!.date if let modifiedDate = Calendar .current.date(byAdding: .day, value: 1, to: date) { datePicker!.date = modifiedDate InputTextField.inputView = datePicker }
  • 发生了什么异常?
  • Xcode 说,“线程 1:信号 SIGABRT”。它还说“libc++abi.dylib:以 NSException 类型的未捕获异常终止”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多