2010-11-22 15 views
0

iPhoneベースの電子メールクライアントを考えてみましょう。あなたは同じUIを持つ3つの「状態」を持っています:新メッセージ、返信、転送(他のメッセージは無視します)iPhoneでの単一のビュー用の複数のビューコントローラ

私は1つのビューを持っていて、そのビューに異なるビューコントローラを接続したいと思っています。ビューがInterface Builder(多数のIBOutletsとIBActionsを使用)で構築されていることを考えれば、これを行う最善の方法は何ですか?

+2

しないでください。サポートされていません。 1つのビューコントローラは、常に単一のビュー階層を担当します。 –

+0

@Jason異なるビューコントローラでビューを再利用すると間違ったことは何もありません。最初はビューコントローラを持っているという点です。 – kubi

+0

これらの新しいView Controllerをどのように作成していますか?興味のある意見を伝えることができますか?つまり、[viewController setStateView:currentStateView]; – joshpaul

答えて

2

あなたが言っていることは本当に意味をなさないことを示唆しています。

3つのニーズの間で、同じビューコントローラ(つまり、「アプリケーション」は基本的に)が変更されます。

また、3つのビューがまったく同じであるとは考えにくいので、3つの異なるビュー/コントローラを作成します。

は(それはあなたが多くの「類似」のビューがあることを完全に正常だ - 確かにちょうど別のビューですが、彼らは、グラフィカルに同様のことが起こる。)また

- それはあなたが1つの全体図を持っている可能性が非常に可能性があります( /コントローラ)、その内部に座るだけで特定の書き込み/読み取り/どのような表示(/コントローラ)になります。

私はそれが助けてくれることを願っています!

1

1つの方法として、すべてのInterface Builder接続を含む1つのView Controllerを作成し、そのView Controllerを複数回サブクラス化することがあります。コードでは、すべて-initWithNibName:bundle:と同じペン先を使用してサブクラスをインスタンス化することができます。

また、ビューコントローラには「状態」値の種類があり、その状態を基にした動作を決定します。提示するビューコントローラは、それを適切に設定する責任があります。

関連する問題