将 var 设置为今天的日期

Set a var to today's date

我有一个 datePicker 字段,它不允许用户 select 将来的日期。我想我会使用 var maximumDate: NSDate?然后将其设置为等于我已经定义为 isToday 的 var(var maximumDate: NSDate? = isToday)。日期选择器已经出现(但不是 return selected 时的日期)。现在我需要将日期选择器限制为仅今天或过去的任何日期。这是我写的。我目前在定义 var isToday 和 var maximumDate: NSDate 的第一行有错误? = 今天。感谢您的协助。

var isToday = NSDate
var season = traSeason
var sport = traSport
var dispenseTo = ["Personnel", "Physician"]

var activeField = []

var datePickerView  : UIDatePicker = UIDatePicker()

@IBOutlet var userLabel: UILabel!
@IBOutlet var teamLabel: UILabel!

@IBOutlet var enterDate: UITextField!

@IBAction func dateTapped(sender: UITextField) {

    //code for what to do when date field is tapped
    datePickerView.datePickerMode = UIDatePickerMode.Date
    enterDate.inputView = datePickerView
    datePickerView.addTarget(self, action: Selector("handleDatePicker:"), forControlEvents: UIControlEvents.ValueChanged)

}

func handleDatePicker(sender: UIDatePicker) {
    var dateFormatter = NSDateFormatter()
    var maximumDate: NSDate? = isToday
    dateFormatter.dateFormat = "dd MMM yyyy"
    enterDate.text = dateFormatter.stringFromDate(sender.date)
}

您只需将此行添加到您的 handleDatePicker 方法中即可将日期选择器 属性 maximumDate 设置为现在 (NSDate()) :

sender.maximumDate = NSDate()

您的代码没有意义。您正在创建一个全新的日期选择器,然后从未将其安装在您的视图层次结构中。您正在创建的日期选择器从不执行任何操作。

相反,您应该在 Interface Builder 中创建一个日期选择器,然后按住 Control 从该日期选择器拖动到视图控制器 class 的顶部,就在大括号内。这将导致 IB 提议创建一个 IBOutlet。然后在您的 viewWillAppear 方法中,您将配置插座中的现有日期选择器以设置最大日期。

这一行也没有意义:

var isToday = NSDate

它甚至应该做什么?看起来变量将设置为 NSDate class.

名字也很迷惑。对于以 "is" 开头的变量名称,我希望它是一个布尔值,如果某个日期是今天则为真,否则为假。

我建议改用这个:

let today = NSDate()

该代码创建了一个 NSDate 类型的常量,并将当前日期和时间存储到其中。 (编译器可以推断 today 是一个 NSDate,因为那是 NSDate() 初始化函数 returns。)