私のアプリには、以下を含む複雑なビュー
が
あり
ます
。コアプロット。
コア プロット用のコントローラー、コレクション ビュー用の
コントローラーなど、複数のビュー コントローラーを用意する方が簡単で使いやすいと思います。これらすべての項目を制御する View Controller が 1 つしかない場合、多くのコードを含む巨大なファイルになり、適切に構造化されていないためです。
この問題にコンテナを使用できますか? それとも、巨大な ViewController ファイルに固執する方が良いですか? それとも別の解決策がありますか?はいの場合、ストーリーボードでこの解決策を実行できますか?
2 に答える
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]
、コンテナに切り替えが完了したことを知らせます。
それが役立つことを願っています。
ビューごとに異なるビュー コントローラーを使用できます。ただし、すべてのビュー コントローラーのコンテンツを 1 つのシーンで同時に表示する必要があるため、このハックを試す必要があります。
コンテナ ビュー コントローラは、子ビュー コントローラのコンテンツを表示するビュー コントローラです。ただし、コンテナー ビューは一度に 1 つの子のみを表示します。そのため、View Controller を作成し、View Controller を必要な数だけコンテナー ビューを追加する必要があります。スナップショットを添付しました。
お役に立てれば!
ストーリー ボードでこれを実現する手順: 1) IB でビュー コントローラーを選択します。2) IB からコンテナー ビュー
を
追加して、View Controller の階層を表示します。
3)コンテナビューの子を削除して、目的のView Controllerを接続するだけで変更できます。
4) 両方のコンテナー ビューの両方の子が、ストーリーボードにコードなしで表示されます。
ビュー コントローラーと委譲の初期化については、ビュー コントローラー プログラミング ガイドのサンプル コードを確認することを強くお勧めします。