2011-12-19 6 views
0

私の質問はiPhone: Create a reusable component (control) that has some Interface Builder pieces and some codeに似ていますが、私の問題は解決していません。また、それは1年後で、その間に何が変わったのかを知っています。Interface Builderを使用して再利用可能な日付ピッカーが可能ですか?

私はInterface Builderとストーリーボードを使ってiPadアプリを開発しています。私はいくつかの場所で同じ日付ピッカーのポップオーバーが必要ですが、私は異なるビューから同じコンポーネントを再利用する方法を理解できませんでした。私はこれに2,3時間を費やして、物事を試し、ドキュメントを読んで、グーグルとスタックオーバーフローをしました。

現在、私は機能を得るハックの仕事をしてきましたが、それほど美味しくありません。これまで最も有望なアプローチは、ボタンから日付選択ツールやその他のウィジェットを含む新しいUIViewControllerへのポップオーバーセグを持つことです。これは、ボタンを押したときの日付ピッカーのポップオーバーを表示し、日付ピッカーを押したときに日付ピッカーを動かします。

しかし、私は複数のボタンからこれを使用する方法を理解できません。私は代議員を挑戦しましたが、どこかでうんざりしています。

+1

私は同じ問題に遭遇し、プロトコルの代わりにブロックコールバックを使用する再利用可能なコントロールセットを実装しました。これにより、さまざまなユースケースで複数の異なる場所で同じコントロールコンポーネントを使用する場合に、非常に柔軟性があり便利です。 サンプルプロジェクトとフレームワークは、https://github.com/toolmanGitHub/BDApplicationHelpersから入手できます。 ストーリーボードは実装されていませんが、正しい方向を指すことがあります。 – timthetoolman

答えて

2

ビューに日付ピッカーを持つビューコントローラを実装できます。これをDatePickerViewControllerと名づけましょう。このクラスは、datePickerViewController:pickedDate:などのプロトコルを実装できます。この日付ピッカーを使用して日付を選択すると、選択した日付について代理人に通知できます。

そして、あなたはボタンからこの日付ピッカーを提示する必要がある時はいつでも、その後、あなたは、新しいUIPopoverControllerを作成する新しいDatePickerViewControllerインスタンスを作成し、そのcontentViewControllerとポップオーバーにこのインスタンスを与え、あなたのボタンからポップオーバーコントローラを提示することができます。

DatePickerViewControllerを作成するときに選択した日付に関する情報を取得するには、表示される日付について知るために、表示コントローラにdelegateを設定します。

関連する問題