0

ここに画像の説明を入力

私は、マップビューとテーブルビューを含むビューを持っています。これは、Facebook アプリの外観で Facebook の近くの場所の画面がどのように見えるかに似ています。

インターフェイスビルダーを使って画面をまとめました。テーブルビューとマップへのアウトレットがあります。そして、メイン ビューを制御する UIViewController をマップ ビューとテーブル ビューの両方のデリゲートに設定します。すべてが完璧に機能します。

ただし、このメインの UIViewController は、独自のビューである mkmapview と uitableview に代わってメソッドに応答する必要があるため、かなり面倒です。ただし、データはマップ ビューとテーブル ビューの間で多少共有されます。

これが UIViewController のコンテインメントの出番かどうか疑問に思っていますか? または、これら 2 つのビューのデリゲートとして機能するカスタム オブジェクトを作成する必要がある場合。最新の iOS で使用する正しいデザイン パターンを探しています。数年前までは、すべてを同じコントローラーにマッシュアップするだけで十分でした。たぶん、それはまだ道のりです。

4

1 に答える 1

1

どちらも良い考えですが…

コントローラーのコンテインメントは通常、UINavigationController などのナビゲーション関連の目的で使用されます。

デリゲート/データソースの機能の一部を実行するカスタム オブジェクトも良い考えですが、ビュー コントローラーや相互にデータを共有するという点では少し扱いに​​くいです。これは、特に他のビュー コントローラーが同じデリゲート/データソースの動作を必要とする場合に、良い解決策になる可能性があります。

3 つ目の方法は、おそらく 3 つの方法の中で最も優れている方法ですが、View Controller のクラス拡張を作成することです ( Apple のドキュメントはこちらを参照してください)。これらは、異なるファイル内のクラスの一部と考えることができます。

于 2013-07-08T20:34:12.623 に答える