2012-02-21 16 views
0

私は2番目の画面を利用するiOS 5 iPadアプリを作成しました。私たちには管理者ビュー(iPad上)とApple DVIアダプタを介して接続されたHDMI対応テレビを通しての外部ビューがあります。 iPadビューとTVビューの両方で、数秒ごとに行われるサービスコールから同じデータ更新が得られます。次に、受信したデータを一連のチャートとして提示します。グラフ化されたデータはTVとiPadのビューでは非常に異なって表示されますが、データのコア辞書は同じです。私はこのソリューションを設計するためのエレガントな方法について疑問を抱いています。現時点では、GCDを使用してサービスコールを行い、他の(TV)ビューコントローラのデータ(チャート)プロパティを更新するNSNotificationsをディスパッチするView Controller(管理者用のiPad VC)があります。 VCからサービスコールを移動して、アプリケーションコントローラで初期化されたシングルトンを作成することを検討しています。私は(何らかの形で)2つのVCをデリゲートとして設定し、単純なプロトコルを使って更新します。私はこれが良いアプローチであるかどうか、あるいは何か他のものを考慮する必要があるかどうかは完全にはわかりません。両方のVCを別のクラスのデリゲートとして設定することはできますか、通常はクラスインスタンスごとに1つのデリゲートだけですか?iOS Airplay viewcontroller data sychronisation

ありがとうございます。あなたは、両方のビューコントローラで共有することができ、独自のモデルクラス、に

ベン

答えて

0

チャートデータはなぜ抽象的ではありませんか?モデルクラスは、新しいデータをフェッチする役割を担うことができます。コントローラが更新を認識できるようにするには、モデルオブジェクトでKVOを使用するか、更新が発生したときにモデルオブジェクトから送信された通知を確認するか、モデルオブジェクトと各ビューコントローラに対してデリゲートの配列を持たせることができます代議員になる

あなたが本当に欲しいのであれば、それをシングルトンにする魅力的な理由はないようです。

+0

はい、それは私が言っていることです。モデルを作成していますが、2つのアクティブなVC間でこのモデルを共有する "ベストプラクティス"は不明です。シングルトンに関しては、サービスコールをしているクラスです。これは起動時に作成され、init'dされ、サーバーを呼び出し続け、モデルを使用して2つのVCを更新します。必要な場合を除き、通知を使用するのは嫌です。経験から、左、右、中央のイベントを発生させるあまりにも複雑なアプリで簡単に終わることができ、責任の連鎖はありません。 – Ben

関連する問題