UIViewController複数の子ビューコントローラーを持つカスタムを実装しました(主にストーリーボードを使用しContainer Viewますが、それだけではありません)。
送信されたメッセージに関係する子のViewControllerが必ずしも直接の子であるとは限らないことを考慮して、「root」ビューコントローラがその子にメッセージを送信するための最良の方法は何でしょうか。 「ルート」ビューコントローラ?
例えば:

#0ビューコントローラ#1とにメッセージを送信したい#4。ナイーブな実装は#0、次のように、の子を反復処理してメッセージを送信することです。
for (UIViewController *childVC in self.childViewControllers)
{
if ([childVC respondsToSelector:@selector(myMessage:)])
{
[childVC performSelector@selector(myMessage:)];
}
}
ただし、メッセージを受信し(または、カスタムメソッドを呼び出している#3場合はおそらく受信せず)、その子に伝播しないため、単純に機能しません(ここ)。UINavigationController#4
それで、自分の子供にメッセージを送信し、そのメッセージを階層全体に伝播させる可能性はありますか?UIViewController
そうでない場合は、を使用してNSNotificationCenter、メッセージに関心のある子(#1および#4)に通知を監視させ、必要に応じてルートビューコントローラーに通知を投稿させることもできます。しかし、2人の子供にメッセージを送るだけでは少しやり過ぎだと思います。