アプリで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ますか?
ティアがいっぱい!