2

だから私はすぐに iOS のユニバーサル アプリケーションに取り組むつもりです。私は実際にそれをしたことがないので、ここでのベストプラクティスが何であるかはわかりませんが、デバイスごとに個別の VC を使用する代わりに、いくつかの解決策を考えることができました. 一般的な問題は、デバイスごとに異なる UI (トランジション、ポジショニング、アニメーションなど) です。VC はロジックの場所であるため、ロジック コードの重複やロジック用のコンテナーの作成をどうしても避けたいと考えています。だからここに私の考えがあります:

  • デリゲート - 各 VC のプロトコルを作成し、次にこのプロトコルを実装する 2 つのクラス (デバイスに固有のロジックを含む) を作成し、VC では、アプリケーションが現在実行されているデバイスに基づいて、これらのクラスのいずれかにデリゲートを設定します。
  • ブロック - デリゲートによく似ていますが、より面倒です
  • 継承 - デリゲートとほとんど同じですが、プロトコルと 2 つのデリゲート クラスと 1 つの VC の代わりに 3 つの VC があります - 1. ベース 2. iphone 3. ipad - 2 と 3 は 1 から継承し、デバイスに固有のメソッドを実装/オーバーライドします

これらは、基本的に同じであるが異なる実装であっても、私が考えることができる3つです。私はデリゲートが個人的に好きですが、これについては全くの初心者であり、アドバイスを求めています。私はこれについて正しい方法で考えていますか、それとも他のアプローチやベストプラクティスはありますか?

4

2 に答える 2

0

ほとんどの場合、別のビュー コントローラーを作成する必要はありません。

ストーリーボードを使用する場合、iPhone と iPad の両方で使用される共通のビュー コントローラー用のストーリーボードと、iPhone と iPad 用の追加の 2 つのストーリーボードを個別に作成できます。次に、IBOutlets を使用してコード内で参照します。

画面が大きいため、iPad バージョンの方がコンセントが多いことがよくありますが、コードは iPhone バージョンでも動作するはずです。

ストーリーボードを分割するだけでは不十分な場合は、VC クラスの異なるファイルで 2 つのカテゴリを使用することをお勧めします。次に、通常のファイルに共通コードを保持し、カテゴリに特殊な機能コードを追加します。

于 2013-04-10T22:51:10.680 に答える