If you want your application to constantly communicate with the outside, and that several view controllers can be present and act on messages, you need to move the message to a separate instance and provide an interface for your view controllers to interact with it.
I would create a communication class or a set of classes that you can create a shared instance inside your appDelegate application. Different view managers can access this shared instance through the appDelegate application or some other mechanism that you provide.
How complicated it should be depends on your exact requirement.
Modify the following requirement to update comments:
, , , , , .
, , API . - ( , API- - ), runloop, , , , . , , .
. (, ) . . . , , . , , .
API , . , . , .
.