como posso passar dados de um contêiner para outro, ambos incorporados no mesmo uiviewcontroller no swift?
Eu tenho paiUIViewController
e possui dois contêineres de visualização diferentes - cada um deles incorporouUIViewController
dentro. Parece de alguma forma assim:
Quero alterar o rótulo no contêiner direito quando o usuário pressionar o botão armazenado no esquerdo.
Até agora, eu era capaz de fazer isso enquanto colocava um botão em um controlador de exibição pai, então estava apenas usando um protocolo:
no meu componente pai, eu tinha:
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
}
}
no meu UIViewController incorporado em contêiner, eu tinha:
protocol HandleEmbedded: class {
func setName(label: String)
}
class EmbeddedContainer: UITableViewController, HandleYourChat{
func setName(label: String){
print("setting label to \(label)")
}
}
A situação acima funciona quando coloco o botão em um controlador pai e quero alterar o rótulo dentro de um contêiner. Mas o que acontece e como devo passar os dados quando o botão também está incorporado, mas em um contêiner diferente do rótulo? Preciso passar os dados pelo controlador pai? Qual é a melhor maneira de fazer isso?