Pass Daten zwischen ViewController und ContainerViewController

Ich arbeite an einer App und muss Daten zwischen view und containerView übertragen. Ich muss Daten aus beiden Ansichten senden und empfangen.

Lassen Sie mich besser erklären:

Ich kann das @ ändeLabel Master (Berühren Sie die Containertaste) mitProtokol, aber ich kann das @ nicht ändeLabel Container (Berühren Sie die Master-Taste). Was passiert, ist der Master verbindet sich mit dem Container durch eine Folge. Sie haben jedoch keinen Verfolgungscontainer, der mit dem Master verknüpft ist.

Ich habe versucht, hinzuzufügen, aber segue zu, aber es hat funktioniert.

Der Master View Controller:

import UIKit

protocol MasterToContainer {
    func changeLabel(text:String)
}

class Master: UIViewController, ContainerToMaster {

    @IBOutlet var containerView: UIView!

    var masterToContainer:MasterToContainer?

    @IBOutlet var labelMaster: UILabel!


    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "containerViewSegue" {
            let view = segue.destinationViewController as? Container
            view!.containerToMaster = self
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func button_Container(sender: AnyObject) {
        masterToContainer?.changeLabel("Nice! It's work!")
    }


    func changeLabel(text: String) {
        labelMaster.text = text
    }
}

Der Container View Controller:

import UIKit

protocol ContainerToMaster {
    func changeLabel(text:String)
}

class Container: UIViewController, MasterToContainer {

    var containerToMaster:ContainerToMaster?

    @IBOutlet var labelContainer: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

    }

    @IBAction func button_Master(sender: AnyObject) {
        containerToMaster?.changeLabel("Amazing! It's work!")
    }


    func changeLabel(text: String) {
        labelContainer.text = text
    }
}

Kann mir jemand helfen

Antworten auf die Frage(4)

Ihre Antwort auf die Frage