2

私のアプリには、以下を含む複雑なビュー
が あり ます
。コアプロット。 コア プロット用のコントローラー、コレクション ビュー用の コントローラーなど、複数のビュー コントローラーを用意する方が簡単で使いやすいと思います。これらすべての項目を制御する View Controller が 1 つしかない場合、多くのコードを含む巨大なファイルになり、適切に構造化されていないためです。 この問題にコンテナを使用できますか? それとも、巨大な ViewController ファイルに固執する方が良いですか? それとも別の解決策がありますか?はいの場合、ストーリーボードでこの解決策を実行できますか?




4

2 に答える 2

3

Container View Controllerは、必要なものに最適なようです。

すべての手順は上記のリンクにリストされていますが、簡単に言うと、
-子View Controllerをコンテナに追加します[self addChildViewController:childVC]
-次に、コンテナのビューを設定します-次に、コンテナに[self.view addSubview:childVC.view]
設定されていることを子View Controllerに伝えますと[childVC didMoveToParentViewController:self]

次に、新しい子ビュー コントローラーに切り替えたい場合: - andを
呼び出して、子ビュー コントローラーを切り替えることをコンテナーに認識させます。 - 次に、次の方法で移行を行います。 [self addChildViewController:newVC][source willMoveToParentViewController:nil]

[self transitionFromViewController:oldVC toViewController:newVC  
                          duration:/*you duration*/ 
                           options:/*your options*/ 
                        animations:/*your animations*/   
                        completion:/*your completion*/] 
  • そして最後の呼び出し[oldVC removeFromParentViewController][newVC didMoveToParentViewController:self]、コンテナに切り替えが完了したことを知らせます。

それが役立つことを願っています。

于 2013-11-07T13:27:52.527 に答える
1

ビューごとに異なるビュー コントローラーを使用できます。ただし、すべてのビュー コントローラーのコンテンツを 1 つのシーンで同時に表示する必要があるため、このハックを試す必要があります。
コンテナ ビュー コントローラは、子ビュー コントローラのコンテンツを表示するビュー コントローラです。ただし、コンテナー ビューは一度に 1 つの子のみを表示します。そのため、View Controller を作成し、View Controller を必要な数だけコンテナー ビューを追加する必要があります。スナップショットを添付しました。スナップショット

お役に立てれば!

ストーリー ボードでこれを実現する手順: 1) IB でビュー コントローラーを選択します。2) IB からコンテナー ビュー
を 追加して、View Controller の階層を表示します。 3)コンテナビューの子を削除して、目的のView Controllerを接続するだけで変更できます。 4) 両方のコンテナー ビューの両方の子が、ストーリーボードにコードなしで表示されます。

ビュー コントローラーと委譲の初期化については、ビュー コントローラー プログラミング ガイドのサンプル コードを確認することを強くお勧めします。

于 2013-11-07T13:45:39.683 に答える