3

コントローラがUIDatePickerにあるビューに がありUINavigationControllerます。次のように、選択した日付の変更を登録しています。

[self.datePicker addTarget:self.alarm action:@selector(timeChanged:) forControlEvents:UIControlEventValueChanged];

UINavigationController日付ピッカーが完全に落ち着く前にユーザーが戻るボタンを押した場合を除いて、これはうまく機能します。その場合、timeChanged:メソッドは呼び出されていないため、新しい日付を取得していません。

戻るボタンを押しても何も解放されません。ビュー コントローラーが外れているだけです。(それへの参照は維持されます)。

この問題の解決策にUIPickerViewは、ピッカー ビューのデリゲート メソッドの実装が含まれます (例: UIPickerView: Get row value while spin? )。しかし、私が非常に間違っていない限り、それはUIDatePicker. UIDatePicker可能であれば、カスタムではなくに固執したいと思いますUIPickerView。これを行う方法はありますか?選択した行を完全に取得する必要はありません (1 行または 2 行以内で問題ありません) が、近いほど良いです。

編集:これは脱獄アプリ用であるため、プライベート API が何であるかを理解できれば問題ありません。

4

1 に答える 1

3

現在の API に関しては、 aUIDatePickerが回転しているかどうかを検出する方法はありません。

これは、UIDatePickerが のサブクラスではなく、内部UIPickerViewで を管理しているためです。UIPickerView

ここでの最善の解決策は、カスタムを使用することですUIPickerView

于 2013-04-19T23:31:02.990 に答える