0

ABPeoplePicker ナビゲーション コントローラー デリゲートとして機能するサブクラス化された UIViewController があります。このView Controllerは、いくつかの異なる状況でこのABPeoplePickerを呼び出しますが、私が抱えている問題は、どの状況に応答しているかを把握することです

- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person

UIAlertView には、これを整理するのに役立つ UIView から継承されたタグ プロパティがありますが、ABPeoplePickerNavigationController で使用する同様のプロパティが見つかりません。ココア忍者はこのような状況にどのように対処していますか? カスタム デリゲートをスピンオフしますか? ビュー コントローラのサブクラスでいくつかの BOOL をいじりますか?

4

1 に答える 1

0

基本的に、いくつかの状態があり、それがどこに属しているかを尋ねていますよね? 残念ながら、答えは「実際には州によって異なります」です。

ビュー コントローラーの操作に関連する場合は、そこに貼り付けて、ビュー コントローラーをデリゲートとして保持します。

それが実際には関連しておらず、デリゲート全体を別のオブジェクトに移動できる場合、最終的にはよりクリーンになる可能性があります。何百行もの長さで、何十ものメソッドを持つ悪夢のようなコントローラーを手に入れるのは本当に簡単です。物事を複数のオブジェクトに分割し、コンポジション パターンを使用すると、非常に役立ちます。

于 2010-02-20T04:40:32.067 に答える