2012-03-22 11 views
0

ツリー/ドリルダウンナビゲーションスタイルがすべての状況で機能しないため、UINavigationControllerが気に入らない。私が探しているのは、UISwitchControllerの一種で、View ControllerはUISwitchControllerに次のビューとそのデータを渡すことを伝えることができます。次に、現在のビューが閉じ、UISwitchControllerは次のビューを開き、前のビューからデータを渡すことを処理します。 UISwitchControllerは、現在開いているビューの名前/タイプを覚えているので、誰がそれを開いたのかを知ることができます(UISwitchControllerは現在のビューでBackリクエストを処理できます) 。ビューはUISwitchControllerにフラグを立てて、メモリに保持し、閉じた後に解放しないようにすることもできます。そのため、ビューコントローラは、そのビューへの呼び出しごとに再利用することが不可欠です。そのような枠組みはありますか?iOS上の「真の」MVC用のビュー切り替えフレームワーク

答えて

3

だから、基本的に、あなたは、いくつかのUIView(コントローラ)Sを保持し、プレゼンテーションを扱うのUIViewControllerの話をしています。

は、iOS < 5で私は別のビューにビューを追加するのUIViewController、それが表示されるを使用します。あなたがのUIViewController封じ込めを理解しておく必要があり5+のiOSで

は、それは実際に他の子ビューコントローラとUIViewControllersを使用する方法のパターンです。

フォームのUIViewControllerドキュメント

Implementing a Container View Controller

のiOS 5.0で

以降では、カスタムのUIViewControllerのサブクラスでは、コンテナビューコントローラとして 作用することができます。コンテナビューコントローラは、自身が所有する他のビューコントローラのコンテンツの プレゼンテーションを管理します。子ビューコントローラとしては とも呼ばれます。子ビューは、そのまま として、またはコンテナビューコントローラが所有するビューと組み合わせて表示できます。

あなたのコンテナビューコントローラのサブクラスは、その子を関連付けるために、パブリック インターフェイスを宣言する必要があります。これらのメソッドの性質は であり、作成するコンテナのセマンティクスに依存します。 あなたはそれらの子供が表示され、どこ彼らはあなたのビューコントローラのビュー階層に表示されます とき、一度にあなたのビュー コントローラによって表示することができますどのように多くの子供たちを決定する必要があります。あなたのビューコントローラ クラスは、もしあればどんな関係が子どもによって共有されるかを定義します。あなたのコンテナのためのクリーンなパブリック・インタフェースを確立することにより 、あなたは子供たちが、あなたのコンテナが 動作を実装する方法について あまりにも多くの民間の詳細にアクセスすることなく、論理的にその機能を使用していることを確認し 。私はそれはあなたが探しているまさにだ場合、私は知らないが、あなたはURLを行うためにthree20フレームワークからTTNavigatorを使用することができます多くのそれを使用していない

+0

おかげで、単一のコントローラ複数のビュー・アプローチは、私のためにうまく働きました。私は間違いなくコンテナビューのコントローラのものを見てみましょう。 – enamrik

1

それがあなたが望むものであるかもしれないように聞こえるベースのナビゲーション。

https://github.com/facebook/three20

+0

これは私の次のプロジェクトではっきりと使うつもりです – enamrik

関連する問題