2012-03-13 4 views
0

イベントが発生したときにユーザーに表示されるカスタムグラフィックがあります。グラフィックは、現在表示されているviewControllerに表示する必要があります。NSNotificationsのすべてのビューコントローラの登録

私はこれまでのところ、それをプログラムした方法は、すべてのviewcontrtollersに追加することです: 1)グラフィックカスタムクラス 2)は、実際に 3)の方法を提起されたNSNotificationイベントのオブザーバーのための.hファイルグラフィックを描画します。

これは非常に効率的なやり方だと感じていません。誰かがより良いやり方をしているのかどうか疑問に思っていましたか?

答えて

1

私にとっては、それはあなたがかなり穏やかなやり方でやったように思えます。私が考えることができる他の唯一の方法は、ウィンドウにグラフィックを追加して、現在のView Controllerにオーバーレイすることです。通知を受信するオブジェクトを1つだけ持つ必要があります。たとえば、アプリケーションデリゲートを使用することができます。しかし、グラフィックを上に追加するときは、画面の回転について心配する必要があります。あなたが改善することができる唯一のことは、カスタムグラフィッククラスに描画グラフィックスの一部を藤色することです

1

何がやっていることは正しいです.. ..(あなたはまだ行っていない場合は...

だけで作りますその後、graphics classからmember variable ..andとしてUIViewController変数を使用すると、notifications ..and受け取る現在のビューdisplaying..afterにそれを設定自体はに基づいてコードを描画するクラスViewControllerあなたは

1

にそれを設定します効率的ではないという理由は、多くのコードを複製していることです。これは最初の作業であり、メンテナンスを作成しますアサッシュObjective-Cを含むオブジェクト指向言語に組み込まれている継承を利用する必要があります。

すべてのビューコントローラでいくつかの動作を共有したい場合は、その動作を共通のスーパークラスに実装します。そのスーパークラスから他のすべてのView Controllerを派生させると、自動的に目的の動作が得られます。スーパークラスの初期化子は、気になる通知のView Controllerを登録することができます。-deallocは登録を解除できます。このように、同じ繰り返しコードで各View Controllerを混乱させる必要はなく、コードを変更したい場合は、1つの場所で行うだけです。