web-dev-qa-db-ja.com

iOS5でストーリーボードを使用してカスタムViewControllerコンテナを作成する方法

ストーリーボード機能を使用するiOS5で、2つのViewControllersが埋め込まれるカスタムコンテナを作成したいと思います。たとえば、テーブルビューコントローラーとビューコントローラーの両方を1つのViewControllerに埋め込みます。

つまり、1つのView Controllerには2つの関係があります。

  1. テーブルビューコントローラーへ
  2. 4 UIImageビューまたはUIButtonが含まれるコントローラーを表示する

このタイプの関係を作成するには、ストーリーボードのドラッグドロップ機能のみを使用し、プログラムでは使用できませんか?

23
Sayali

、シーンを制御するには、ビューコントローラが1つだけ必要です。ただし、このviewControllerには、シーンの特定のサブビューを制御する他の2つのビューコントローラーがある場合があります。これを行うには、シーンviewControllerにプロパティを作成します。この場合、1つはtableViewController用、もう1つはビュー用です。私は物事をまとめておくのが好きなので、これら両方のviewControllersアウトレットを作成し、それらをインターフェイスビルダーで作成します。それらをインターフェイスビルダーで作成するには、オブジェクトライブラリからオブジェクトを取得し、そのタイプを関連するviewControllerに設定します。シーンのviewControllerで作成した適切なアウトレットに接続します。注:これは重要です。そうしないと、ARCを使用してアプリをクラッシュさせた場合に、viewControllerが解放されます。次に、これらのviewControllerを、制御するビューに接続します。これで完了です。

または、必要に応じて、シーンviewControllerでviewControllerをインスタンス化してホップアップすることもできます。

お役に立てれば。

編集:振り返ってみると、これは良い考えではなく、実際にはHIGに反します。コンテンツの画面ごとに、ViewControllerを1つだけ維持し、代わりに適切なビュークラスを作成して、単一のViewControllerにさまざまなビュー間の相互作用を処理させる必要があります。 。

14
Scott Sherwood

tooのハックではない方法があります。これは、UITabBarControllersの次のURLで説明されています。これは、リストの最初のビューコントローラーを使用して最初のサブビューを制御し、2番目のビューコントローラーを使用して他のサブビューを制御できます。または、UISplitViewControllerで動作するようにコードを適応させることもできます。

http://bartlettpublishing.com/site/bartpub/blog/3/entry/351

基本的に、iOSの設定が完了した後、実行時にtabbarcontrollerを置き換えることで機能します。

0
johnnyb