2010-12-18 15 views
0

初めてのiPadアプリを書こうとしていますが、問題があります。iOSテーブルビューとビューコントローラ

ボタン付きのメインビューコントローラがあります。ボタンを押すと、Webサーバーから情報のリストを要求し、そのデータを返します。このデータは、私はポップオーバーのテーブルビューに入れたい。

私はメインビューコントローラを持っていて、データを受け取って辞書に入れてから、それをループしていくつかのデータ配列を取得します。 また、静的なテーブルビューを表示できるPopoverビューコントローラもあります。

私の質問は、メインビューコントローラからポップオーバービューコントローラへのデータ(辞書または配列のいずれか)を取得する方法です。

私は本当に失われています。

おかげ

ジェームズ

答えて

0

ジェームズねえ、私はあなたが最初にあなたの宿題をして構造は、ほとんどのiOSアプリケーションでどのように機能するか、いわゆるデリゲートの味を取得しようと示唆しています。

さらに明確にするために、メインビューコントローラはデリゲートになり、ポップオーバービューコントローラはそのようなデリゲートのになります。デリゲートは、その子コントローラのプレゼンテーションを担当します。同時に、子コントローラは、デリゲートコントローラからのデータを要求し、デリゲートコントローラへの変更を報告する責任があります。

このように、ポップオーバーコントローラはメインビューコントローラから必要なデータを取得できると同時に、ユーザーがポップオーバービューを解除したいときに、ポップオーバービューコントローラがユーザーの指示を検出し、それを却下するメインビューコントローラ。

1

覚えておく必要があるデザインパターンは、委任と通知です。より一般的な方法では、モデルが変更された場合、KVOはビューを更新するのに便利です。もちろん、通知をリッスンするか、またはデリゲートとして機能するオブジェクトは、そのビューのコントローラであり、決してビュー自体はありません。

グローバル変数やシングルトンで物事を保存し、モデルとコントローラと言うように動作する「スーパーオブジェクト」を作ることは、いつでも避けたいものが2つあります。 MVCのパラダイムに固執して、オブジェクトを疎結合させ、どのオブジェクトが他のオブジェクトを所有しているかを考えてください。これはメモリ管理にとって重要であり、正しく実装していないと後で返されます。

WWDC10セッションビデオとセッション#123 - WWDC09のiPhoneビューコントローラテクニックから、セッション#116 - iPhone OS用モデルビューコントローラをチェックしてください。

WWDC10のビデオは、Appleの開発者サイトから無料で入手できます。

関連する問題