私のiPhoneアプリケーションでUIDatePickerを使用しています。私は、datepickerのモードをUIDatePickerModeTimeとUIDatePickerModeDateの間で切り替えるボタンをクリックしています。 モードがUIDatePickerModeDateのときにdatepickerの日付を変更すると、モードを切り替えると変更日が正しく表示されますが、時刻を変更してモードを切り替えると、UIDatePickerModeTimeにモードを再び切り替えて時刻が午前12時にリセットされます私はなぜこれが起きているのか、それをどうするのか分かりません。助けてください。UIDatePicker UIDatePickerのモードをUIDatePickerModeTimeに変更すると、時刻がリセットされますか?
答えて
日付ピッカーを提示するときに日付ピッカーから日付を格納したプロパティとして宣言したDateオブジェクトを使用しました。 日付ピッカーの日付を変更したときに保存された日付を更新しました(UIControl通知の使用) 日付ピッカーのモードを変更すると、日付ピッカーに同じ日付が割り当てられました。
は、私は、これはかなり単純だったが、かつて私は、私は同様の問題を持っている財産は私
ために仕事をしたことをwork.Makingなかった、単純なDateオブジェクトを取ることによって、同じことをしようとしていた理解しています。私がUIDatePickerModeDateからUIDatePickerModeTimeに初めて変更した時は、OKでした。しかし、私が..Dateモードに戻り、再び..Timeモードに戻ると、時刻は00:00となります。その後、モード変更の回数に関係なく、時刻は常に00:00のままです。私は私のUIDatePickerをプログラムで、AppleのUICatalogアプリケーションのUIDatePickerと同じようにモデル化しました。この動作はアプリケーションには存在しません。
私は、UIControl通知でピッカーを取得してリセットするという目的で、保持された@プロパティでピッカーからNSDate値を保存しました。しかし、ピッカーがDateモードからTimeモードに変更されたときに発生したイベントは見つかりませんでした。私が述べたように、私はモードを変更したときに、ではない私は、ピッカーの日付(または時間)を変更した場合にイベントが発生もちろん
[myDatePicker addTarget:self action:@selector(getDateTime:) forControlEvents:UIControlEventAllEvents];
しかし:私ものようなものを試してみました。
最終的に私はモードを切り替えたところで同じイベントメソッドをターゲットにしたUISegmentedControl(UICatalogアプリケーションと同じ)を使用してしまいました。ただし、ピッカーを保存されたNSDate値にリセットすると、Timeは00:00にとどまりました。私はNSLogを使用して、保存された値がOKであることを確認し、Time値の部分も00:00に変更されたことを確認しました。私は新しいNSDate値を保存していないので、これは本当に奇妙でした。元の保存された値は単にそれ自身で変更されました!
私はまだこの問題を調査しており、特にUIDatePickerがサポートされているNIBなしでプログラムで追加されている場合には、これをバグと呼びます。
更新: 私の最終的な解決策は、あなたとほとんど同じでした。何らかの理由で、保存された日付がNSDate値として保存されたときにエラーが続きました。 NSStringのようにそれを保存し、両方の方法を型キャストすることはトリックをした:
またself.saveDate = (NSString*)self.myDatePicker.date;
...
[self.myDatePicker setDate:(NSDate*)self.saveDate animated:NO];
、私はGCDのdispatch_asyncブロックを介して外部機器に日付を取得し、保存していますから、性質、自己を。表記法も必要でした(main_que上でさえ)。
最終的な結論:
は、私は今UIDatePicker日付ピッカーがアクセスされ、毎回の設定が必要な要件ではなく、バグであることを確信しています。アップルのUICatalogアプリケーションを使用して、日付を今日に一度だけ設定し、日付と時刻のモードを切り替えると、そのアプリは全く同じ動作を示します。日付は保持されますが、時刻は00:00にリセットされます。日付または時刻以外のモードに切り替えてスイッチバックすると、すべてのモードがフロア値にリセットされます。
- 1. UIDatePickerから日付と時刻を取得するiOS
- 2. 日付時刻モードのUIDatePickerのコンポーネントのサイズはどのくらいですか?
- 3. UIDatePickerが間違った時刻を表示する
- 4. 時刻限定UIDatePickerは現在時刻の2時間前に表示されます
- 5. UIDatePickerのサイズの変更
- 6. UIDatePickerの変更を観察する
- 7. 空白モードのUIDatePickerモードのUIDatePickerModeDateAndTime
- 8. UIDatePickerの24時間
- 9. UIDatePickerにアクセスするとEXC_BAD_ACCESS
- 10. UIDatePicker即時保存時間
- 11. iOS - UIDatePickerの言語をロケールで変更
- 12. UIDatePicker
- 13. UIDatePickerの今日の変更点
- 14. テキストがUIDatepickerに表示されない
- 15. iPhoneのUIDatePickerビューのサイズを変更することができます
- 16. UIDatePickerとUITableView
- 17. UIDatePickerとNSDate
- 18. UIDatePickerでUILabelリアルタイムを更新する
- 19. 15m間隔のUIDatePickerですが、常に正確な時刻を戻り値として返します
- 20. UIDatePicker自動変更言語を禁止することはできますか?
- 21. UIDatePicker UIScrollViewer
- 22. UIDatePicker UIScrollViewer
- 23. UIDatePickerで使用する24時間モードまたはAM/PMモードを確認します。
- 24. UIDatePicker時間に問題があります
- 25. Interface BuilderのUIDatePicker
- 26. UIDatePIcker TouchUpイベントはプログラムで即時に
- 27. UIDatePickerからタイマー時間を取得しますか?
- 28. UIDatePickerがアニメーション化されないのはなぜですか?
- 29. UIDatePickerとUIPickerViewをUIButtonで実装する
- 30. 24時間形式のUIDatePicker戻り値