私が書いた多くのアプリケーションでは、現在表示されているコントローラーへの参照がないクラスからコントローラーをモーダルに提示しなければならないことが何度もありました。(たとえば、製品のダウンロードの進行状況を表示するために使用されるコントローラーを提示する StoreKit トランザクション オブザーバー)。
Three20 では、 を使用し- [TTNavigator visibleViewController]
て作業を完了できますが、フレームワークを使用したくない場合はどうすればよいでしょうか? のように動作するカスタム関数を再実装する必要がありTTNavigator
ますか? おそらくApple APIに同様の方法がありますか? たとえば、アプリケーション内のすべてのコントローラーに共通の親クラスを作成し、それを使用NSNotificationCenter
してアプリケーション全体のすべての通知を処理する方がよいでしょうか? (もちろん、これには、1 つのクラスに無関係なコードが含まれるという副作用があります)
Apple がこの基本的な機能を彼の標準 API で提供していないことに、私は本当に驚いています。それとも、この問題が繰り返し発生するという事実は、設計手法が不適切であることを示しているのでしょうか?