¿Cómo puedo pasar datos de un contenedor a otro, ambos integrados en el mismo uiviewcontroller de forma rápida?

Tengo un padreUIViewController y tiene dos contenedores de vista diferentes: cada uno de ellos tiene incrustadosUIViewController dentro. De alguna manera se ve así:

Quiero cambiar la etiqueta en el contenedor derecho cuando el usuario presiona el botón almacenado en el izquierdo.

Hasta ahora pude hacerlo mientras tenía un botón colocado en un controlador de vista principal, luego estaba usando un protocolo:

en mi componente padre tuve:

class ParentController: UIViewController {

    var delegateEmbedded:HandleEmbedded?

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "segueToFirstEmbeddedController"){

        if let embeddedView = segue.destinationViewController as? EmbeddedContainer {

           self.delegateEmbedded = embeddedView
         } 


     }

en mi UIViewController integrado en el contenedor tuve:

protocol HandleEmbedded: class {
    func setName(label: String)
}

class EmbeddedContainer: UITableViewController, HandleYourChat{

    func setName(label: String){
        print("setting label to \(label)")
    }
}

La situación anterior funciona cuando tengo el botón colocado en un controlador principal y quiero cambiar la etiqueta dentro de un contenedor. Pero, ¿qué sucede y cómo debo pasar los datos cuando el botón también está incrustado, pero en un contenedor diferente al de la etiqueta? ¿Tengo que pasar los datos a través del controlador principal? ¿Cuál es la mejor manera de hacerlo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta