2012-05-07 33 views
1

私のプロジェクトでは、私は、私のビューにtableView、moviePlayer、およびいくつかのサブビューを追加する傾向があります。 サブビュー内のボタンのすべてのIBActions、またその中のtableViewのデータソースとデリゲートになります。ViewControllerはビューのサブビューのアクションも処理する必要がありますか?

その結果、ViewControllerは非常に大きなクラスになりました。

サブビューに別のコントローラーが必要ですか?これらのサブコントローラとビューコントローラの間でどのように通信しますか。

答えて

1

まあ、ある種類のロジックを持っている場合は、実際には別のUIViewControllerに独自のnibファイルを割り当てる必要があります。それらと通信するには、NSNotificationsを利用することができます:IBActionsで通知をプッシュし、サブビューコントローラで捕捉します。

+0

カテゴリを使用しますか? –

+1

いいえ、単にUIViewControllerのセットを使用してください。 –

+0

なぜ通知?デリゲートを設定することはありませんか? –

0

ビューコントローラは、光沢のあるCocoaアプリケーションの中心であり、Appleのドキュメントによれば、グルーコードを実装するための好ましい方法です。このような単純なケースでは、より多くのレイヤーを必要としません。

+0

クラスが1000以上の行になっても問題ありませんか? –

+0

なぜですか?大規模なプロジェクトには数百万の行がありますが、それほど多くのクラスはありません。 –

+0

そのクラスを維持することは非常に困難です。すぐに修正する必要があるコードを見つけることはできません。 –