私は、特定のイベントをトリガーするカスタムデリゲートを持っています。コンテキストの場合、イベントを任意に発生させるのはBluetoothデバイスです。私は、デバイスの代理人によってトリガされるこれらのイベントに、オプションでサブスクライブするビューコントローラを希望します。イベントをグローバルに委任するにはどうすればよいですか?
各ビューコントローラがカスタムデリゲートに準拠しているとは限りません。これは、デバイス変数がローカルであり、そのビューコントローラでのみ起動することを意味するためです。他のView Controllerは変更を認識しません。もう1つの具体的な例はCLLocationManagerDelegate
です - たとえば、すべてのビューコントローラがGPS座標の変更を聞きたい場合はどうすればいいですか?
代わりに、私は、すべてのビューコントローラが購読できるグローバルデリゲートをもっと考えていました。したがって、1つのビューコントローラが要求をトリガすると、デバイスはリスンしているすべてのサブスクライブされたビューコントローラに対してデリゲート関数を呼び出します。
このアーキテクチャ設計をどのように達成できますか?代議員は適切なアプローチではないのですか?私は多分NotificationCenter
がここで助けることができると思ったが、あまりにも緩くタイプされたように見えるかもしれない。どんな助けでも大歓迎です!