ストーリーボードに次のビューがあります。
ご覧のとおり、いくつかの固定コントロールと、画面の種類に応じて変化するコントロールがあります。何が良いと思いますか?
1-複数の画面に同じView Controller。(ビューを制御するコードを追加)
2- すべてのコントロールを同じ画面に追加してから、コードでそれらを隠したり表示したりしますか? (乱雑なコード)
3-各画面のコントローラーを表示します。(レプリケートされたコード)
ストーリーボードに次のビューがあります。
ご覧のとおり、いくつかの固定コントロールと、画面の種類に応じて変化するコントロールがあります。何が良いと思いますか?
1-複数の画面に同じView Controller。(ビューを制御するコードを追加)
2- すべてのコントロールを同じ画面に追加してから、コードでそれらを隠したり表示したりしますか? (乱雑なコード)
3-各画面のコントローラーを表示します。(レプリケートされたコード)
「ウィンドウ」という言葉は使用しないでください。言いたいことの解釈が異なる可能性があります。「画面」または「画面の一部」という言葉を使用します。この場合、 のコンテナを使用しUIViewControllers
ます。それらの間で通信するには、KVO
or NSNotificationCenter
(おそらく 2 番目のもの) を使用します。UIViewController
また、 (配列やディクショナリのように) データ ソースを直接持たないようにしてください。すべてのUIViewController
s (または任意のクラス) が簡単にアクセスできる別の場所にデータ ソースを保持します。シングルトンを使用できます。
データ ソースを に直接配置するのUIViewController
ではなく、別の場所に配置すると、コードの柔軟性が向上します。新しい を使用する必要がある場合でもUIViewController
、何も変更されていません。彼は引き続き同じ時点からリソースを要求できます。ですから、それを覚えておいてください。
編集 1
データ ソースもビュー コントローラー内にあります。画面間の相互作用はありません。同じ画面ですが、その種類によって一部のコントロールが変わります。今何をしなければならないと思いますか?
この種のアプローチの問題は、何らかの理由でUIViewController
、同じデータ ソースを使用する新しい を追加する必要がある場合、どうすればよいかということです。UIViewController
私は常に、データ ソースから可能な限り切り離すようにしています。そうしないと、アプリケーションが変更された場合 (クライアントのニーズが変更された場合) に、将来問題が発生する可能性があります。ここでも、データ ソースを適切なクラスに移動し、Singleton を使用してアクセスします。
UIViewController <=> Singleton <=> Data Source
それでは、複数の画面を持つ複数のView Controllerを作成することをお勧めしますか?
UIViewController
を他のコンテナのコンテナとして使用することをお勧めしますUIViewControllers
。私にとっては、すべてを 1 か所で行うよりも、作業しながら画面を構成する方が理にかなっています。
私は間違いなく 3 を使用しません。このアプローチは最も柔軟です。そしてそれはきれいです=>維持するのに良いです