2017-03-01 4 views
0

質問のタイトルが正確であれば、事前に謝罪してください。私が達成したいものの基本的な流れを以下に概説しました。AppDelegate内のグローバルデリゲートクラスの作成

AppDelegate.h

@interface AppDelegate : UIResponder <UIApplicationDelegate, SomeFrameworkDelegate, OtherFrameworkDelegate> 


…other init stuff 

  • AppDelegate.mはSomeFrameworkDelegateOtherFrameworkDelegate方法が挙げられます。
  • これらの方法は、主にサービスとの接続/切断などのメッセージを出力します。

MainViewController

  • これらのデリゲートメソッドでものを行います。
  • 接続/切断時にUI操作を実行します。など

DetailsViewController

  • MainViewControllerと同じものを使用してください。

NOTES:

  • 私は、他のUIのコードでは、私はAppDelegateのインスタンスを作成することだろう、私はAppDelegateでグローバル変数を設定することだろうと仮定します。

    私はワットに検出する方法を

    AppDelegate *appDelegate=(AppDelegate *)[[UIApplication sharedApplication]delegate]; appDelegate.isConnected = ... appDelegate.serviceName = ...

メッセージはデリゲートメソッドに到着しますか? NSNotificationCenter/NSTimer?

つまり、デリゲートメソッドが呼び出されると通知を送信するか、appDelegateの変数をポーリングするタイマーを作成します。

+0

あなたはそれを意味しますか? AppDelegateにいくつかの変数があり、値を変更したときに他のクラスに通知する必要がありますか?もしそうなら、おそらくKVCを使うべきです。そうでなければ私はあなたの質問を完全に理解していません。 –

+0

デリゲートメソッドの値を変更しているので、そこで通知をポストすることができます。そうすることで、関心のあるView Controllerがすべて通知されます。 –

答えて

1

アプリケーションデリゲートで接続を処理/管理しようとしているようです。 AppDelegateの目的は、applicationdidbecomeactive/applicationwillenterforegroundのようなアプリケーションレベルのイベントに応答することです。私の推奨は、あなたの接続を管理するためのシングルトンを作成することです。これは一般的にsharedInstanceパターンと呼ばれます。このシングルトンはmanagedObjectのデリゲート関数を実装する必要があります。実装後にいくつかのオプションがあります。

あなたが接続状態の変更を把握しようとしていることから、私はNSNotificationの使用をお勧めします。あなたのオブジェクトのプロパティのすべての変更を通知する場合は、KVOを使用する必要があります。

0

本当にあなた自身の質問に答えました。私はNSNotificationCenterを使用して、トリガーされたときにデリゲートメソッドで通知を送信します。次に、ビューコントローラで、その通知を観察し、応答します。

関連する問題