2016-08-01 70 views
1

我的swift應用程序使用UIDatePicker供用戶選擇日期。但是,我想設置它,以便當用戶忘記插入時顯示「無日期插入」。UIDatePicker無法識別它當前顯示的當前日期

問題是,當我設置一個if語句,該語句根據datePicker的日期是否等於當前日期顯示警告時,它根本不會識別它。這裏是我的代碼:

if datePicker.date == NSDate() { 
    warnL.text = "NO DATE INSERTED" 
} 

我該怎麼辦呢? 任何幫助將不勝感激!謝謝。

回答

2

有知道如果今天的日期是一個簡單的方法是使用方法上NSCalendar

if NSCalendar.currentCalendar().isDateInToday(datePicker.date) { 
    warnL.text = "NO DATE INSERTED" 
} 

這需要的時區,區域設置和日曆類型的護理。

0

NSDate返回所有日期,包括時間,所以它不會等於您的時間datePicker。 您可以定義變量,它告訴你,如果日期改:

var dateWasChanged = false 

,然後你可以註冊變更事件處理程序:

func viewDidLoad() { 
    datePicker.addTarget(self, action: #selector(YourViewController.handleDatePicker), forControlEvents: UIControlEvents.ValueChanged) 
} 

func handleDatePicker() { 
    dateWasChanged = true 
} 

之後,你可以檢查是否dateWasChangedtrue,並顯示您的信息。

+0

噢好吧,現在我明白爲什麼它不起作用!但是,在嚴密遵循上述步驟之後,我仍然得到一個錯誤:'類型'ViewController'沒有成員'handleDatePicker'。我怎樣才能讓它成爲ViewController的成員或簡單地使它工作? – Bossvanlindt

+0

下面的代碼到它: ') FUNC handleDatePicker({ dateWasChanged =真 } VAR dateWasChanged =假 datePicker.addTarget(UIControlEvents.ValueChanged自我,動作:#selector(ViewController.handleDatePicker),forControlEvents)' – Bossvanlindt

+0

你需要把'var dateWasChanged = false'作爲你的ViewControllers變量,然後在'viewDidLoad'中調用'addTarget'方法。 'handleDatePicker'作爲你的ViewController中的方法。 – eMKa