アプリのいくつかの場所で datePicker を使用します。UIPickerViewDelegate と UIPickerDatasource の委譲メソッドを使用して、すべての viewController を「乱雑」にしたくありません。さらに、同じ委譲メソッドを何度も繰り返します。
datePicker が実行されるたびに、唯一の目的は画面の途中までスライドし、ユーザーに日付を選択させてから再び非表示にすることです。datePicker デリゲート メソッドを実装するラッパー viewController (DatePickerViewController) を考えていたのですが、ユーザーが選択した値で NSNotification を実行しました。これにより、私は分離されたdatePickerになり、datePickerをインスタンス化するviewControllerはDatePickerDelegateについて何も知らず、NSDateを含む通知が来る可能性があることだけを知ることができます. 他の言語でやるように、私には合理的に思えます。しかし、私がここに穴を掘っている場合は、私を修正してください:)
これを分解し始めたとき、Objective C と Cocoa の経験があまりないので、いくつかの困難に遭遇しました。viewDidLoad で datePicker を表示する viewController を作成できます。これを実行すると、画面の下半分に datePicker が表示された空白の画面が表示されます。(カスタム)DatePickerViewControllerをインスタンス化するviewControllerから「presentModalViewController」を使用すると、もちろん上にスライドして画面全体をカバーします。ユーザーがビューの半分を表示したままにしたいと思います。iCal アプリでイベントの時間を設定するのとよく似ています。(ただし、新しいviewControllerをスタックにプッシュします)。ああ、私が言いたいことは、スライドして画面の半分を覆うキーボードとまったく同じであることに気付きました.
だから私の主な問題は、ビューに追加されたときにキーボードのように動作するviewControllerを構築できるかということだと思います。ただし、これはすべて、ビューをインスタンス化するコントローラーではなく、追加された ViewController で行います。
それが理にかなっていることを願っています:)
ありがとうございました