アプリでThree20 を使用していTTMessageController
ます。私はそれを使用する方法を理解し、他の多くのもの(TTMessageControllerDelegate
メソッドとABPeoplePickerNavigationControllerDelegate
メソッドを含む)を追加しました。それを理解するのに少し苦労した後、それは私にとってうまくいきます。
私が今抱えている問題は設計上の問題です。同じデリゲート メソッドを含め、2 つの異なる場所でまったく同じように使用したいと考えています。私の現在のアプローチは、すべてのコードを から継承した という単一のクラスに入れ、NSObject
それComposerProxy
を使用する 2 つのコントローラーに次のようにプロキシを使用させることです。
ComposerProxy *proxy = [[ComposerProxy alloc] initWithController:this];
[proxy go];
このgo
メソッドは、 を構築しTTMessageController
、構成し、 に追加しUINavigationController
、提示します。
[self.controller presentModalViewController: navController animated: YES];
ComposerProxy
すべてのコードが適切にカプセル化されており、使用したい場所で必要なのは上記の 2 行だけであるため、これはうまく機能します。
ただし、欠点は、クラッシュせずdealloc
にproxy
変数を使用できないことです。私もできませんautorelease
。同じ問題です。
私のプロキシアプローチが貧弱なものであるかどうか疑問に思っています。それを使用するクラスで多くの重複コードを必要とせずに、通常、このような一連の動作をカプセル化するにはどうすればよいでしょうか? デリゲート クラスを my に追加し、ComposerProxy
コントローラーが架空のメソッドなどでモーダル ビュー コントローラーを閉じる責任を負うようにする必要がありcomposerDidFinish
ますか?
ティアがいっぱい!