Variablen zwischen ViewControllers

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Variablen zwischen ViewControllers

    Hallo,
    ich kenne mittlerweile verschiedene Möglichkeiten um Daten auf verschiedenen ViewControllers zugänglich zu machen aber was wäre die beste Lösung in meinem Fall...

    Ich habe über Delegate-Pattern ein Protocol definiert

    Quellcode

    1. @objc public protocol NRFManagerDelegate {
    2. optional var nrfConnect: Bool { get set }
    3. optional func nrfDidConnect(nrfManager:NRFManager)
    4. optional func nrfDidDisconnect(nrfManager:NRFManager)
    5. optional func nrfReceivedData(nrfManager:NRFManager, data:NSData?, string:String?)
    6. }

    Ist das mit der Variablen so möglich ? Ich bekomme wenn ich sie setzen will mit "delegate?.nrfConnect = true"
    die Meldung "cannot assign to property "self" is immutable.

    Meine letztere Lösung die funktioniert habe ich mit prepareForSegue gelöst. Ersteres finde ich wenn ich es so machen kann eleganter

    Gruß
  • JamesHook schrieb:

    Ist das mit der Variablen so möglich ? Ich bekomme wenn ich sie setzen will mit "delegate?.nrfConnect = true"
    die Meldung "cannot assign to property "self" is immutable.
    Das Delegate ist nur für die eine Richtung da. Propertys in Delegate-Protokollen sind eher ungewöhnlich, weil man über sie nicht angegeben kann, wer die Änderung macht. Außerdem dient das Protokoll dazu, dass das Delegate das delegierende Objekt benachrichtigt, nicht umgekehrt.

    JamesHook schrieb:

    Meine letztere Lösung die funktioniert habe ich mit prepareForSegue gelöst. Ersteres finde ich wenn ich es so machen kann eleganter
    Der Weg, eine Property im Manager zu deklarieren, und diese in prepareForSegue zu setzen, ist der richtigere und elegantere Weg. Die delegierende Klasse weiss ja schließlich, wen se benutzt.
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    JamesHook schrieb:

    Ist das mit der Variablen so möglich ? Ich bekomme wenn ich sie setzen will mit "delegate?.nrfConnect = true"
    die Meldung "cannot assign to property "self" is immutable.
    Das Delegate ist nur für die eine Richtung da. Propertys in Delegate-Protokollen sind eher ungewöhnlich, weil man über sie nicht angegeben kann, wer die Änderung macht. Außerdem dient das Protokoll dazu, dass das Delegate das delegierende Objekt benachrichtigt, nicht umgekehrt.
    Das mit einer Richtung hätte schon gereicht, diese Information wäre nur lesend genutzt worden.
    Ich hab s jetzt mit prepareForSegue umgesetzt und es tut.

    Gruß
  • Hallo hier bin ich wieder,
    unten stehend ist mein Aufbau meiner App,
    im letzten Tabbar item wird das jeweilige Untermenü ausgewählt in dem dann ein Object erzeugt wird das in jedem "Navigation" zu erreichen sein muss und das in beide Richtungen.
    Nach obenhin zu den " Tabbar item" gibt es nur eine Richtung das habe ich schon mal mit "prepareForSegue" gelöst.
    Es wäre nett wenn ihr mir hierzu ein paar Anregungen nennen könntet wie man das sauber löst

    Gruß :)
    [Blockierte Grafik: http://fs5.directupload.net/images/160515/7phmxs5g.jpg]