2016-03-29 6 views
0

ユーザーに将来の日付を選択させないように設定されている日付ピッカーがあります。現在の時刻には、viewDidLoadの最大日付が設定されています。Datepicker maximumDateが当日早朝に昨日についた

dateDatePicker.maximumDate = NSDate() 

しかし、私はバグに気付いています。今日の正午までの今日の日付は昨日の日付でした。しかし、今では、正午以降、今日のデートが表示されています。

私が実装した方法:日付ピッカーは、ユーザーが使用したいときにアルファで表示され、非表示になっています。だから私はピッカーが表示されるたびに最大日付を設定していますが、それが入っているビューを読み込んだ後ではありません。

これはバグかどうかわかりません。 タイムゾーンと関係がありますか? または、私がdateDatePicker.maximumDateを呼び出すのは、ロードされて表示され、何日前に起こった可能性がある場合にのみ呼び出すということですか? datePickerを表示するたびにmaximumDateをリセットする必要がありますか?

答えて

1

はい、日付ピッカーを表示するたびに最大日付をほぼ確実に設定する必要があります。

前日に最大日付を設定してから、それを更新したり、ビューコントローラを閉じたりしなかった場合は、変更されません。

viewDisLoadではなくviewWillAppearで設定します。

これでうまくいかない場合は、NSCalendarとNSDateComponentsを使用して現在の日付の23:59のNSDateを作成します(現在の日付からMM/DD/YYYYを日付コンポーネントとして取り出し、 23:59それはうまくいくはずです。