MessageBox is a simple concept for decoupling entities.
For example entity A can place a message that entity B can read whenever suitable.
A view controller would like to talk to another view controller, but you don't want to create a strong or weak relationship.