2015-04-21 148 views
-1

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

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

回答

1

你只需要这一行添加到您的handleDatePicker方法设置您的日期选取器属性maximumDate到现在(NSDate的()):

sender.maximumDate = NSDate() 
+0

注释不适用于扩展讨论;这个谈话已经[转移到聊天](http://chat.stackoverflow.com/rooms/76060/discussion-on-answer-by-leonardo-savio-dabus-set-a-var-to-todays-date) 。 – Taryn

2

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

相反,您应该在Interface Builder中创建一个日期选择器,并从该日期选择器控制拖动到视图控制器类的顶部,就在大括号内。这将导致IB提供创建IBOutlet。然后,在viewWillAppear方法中,您可以配置插座中的EXISTING日期​​选择器来设置最大日期。

此行也没有任何意义:

var isToday = NSDate 

它是什么,即使该怎么办?它看起来像变量将被设置为NSDate

该名称也令人困惑。用一个以“is”开头的变量名,我认为它是一个布尔值,如果某日期是今天,则为true,否则为false。

我会建议使用这个代替:

let today = NSDate() 

该代码创建了一个类型的NSDate的恒定和存储当前日期和时间到了。 (编译器可以推断today是NSDate,因为这是NSDate()初始化函数返回的结果。)

+0

感谢您的协助。正如你从我的var isToday错误中可以看出的那样,我对此很新颖。我不确定你的意思是“你的viewWillAppear方法”。我没有看到我的代码中的任何地方。另外,当你说“现存日期选择器”是指我链接到一个新的IBOutlet的那个,或者是我用一直没有任何作用的代码创建的那个(这可以解释为什么我不能做任何事情问)。 – Greg

+0

如果你没有一个,你应该添加一个viewWillAppear:方法(请参阅Xcode docs的签名。)是的,我正在讨论在界面构建器中定义的并且连接到IBOutlet的选择器,而不是你创建的那个在代码中(它没有任何用处) –

相关问题