2016-08-01 5 views
1

私のSwiftアプリケーションは、ユーザーが日付を選択するためにUIDatePickerを使用します。しかし、私はそれを設定して、 "No Date inserted"と表示するようにしたいと思います。UIDatePickerは現在現在の日付を表示していることを認識しません

問題は、datePickerの日付が現在の日付と等しいかどうかに基づいて警告を表示するifステートメントを設定すると、まったく認識できないということです。ここに私のコード:

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 

をそしてあなたが変更イベントのハンドラ登録することができます:あなたはdateWasChangedtrueあるかどうかを確認し、あなたの情報を表示することができた後

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

func handleDatePicker() { 
    dateWasChanged = true 
} 

を。

+0

オハイオ州オクラホマ、今私はそれがうまくいかなかったことを理解する!しかし、上記の手順を厳密に実行した後も、「タイプ 'ViewController'にはメンバー 'handleDatePicker'がありません。私はそれをViewControllerのメンバーにするか、単にそれを動作させることができますか? – Bossvanlindt

+0

ここでのコードは次のとおり 'VAR dateWasChanged =偽 datePicker.addTarget(自己、アクション:#selector(ViewController.handleDatePicker)、forControlEvents:UIControlEvents.ValueChanged) FUNCのhandleDatePicker(){ 真dateWasChanged = }' は – Bossvanlindt

+0

あなたのViewControllers変数に 'var dateWasChanged = false'を入れ、' viewDidLoad'で 'addTarget'メソッドを呼び出す必要があります。そして 'handleDatePicker'はあなたのViewControllerにメソッドとして置かれます。 – eMKa

関連する問題