Delegate zuweisen

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

  • Delegate zuweisen

    Hey,

    ich stehe vor einem Problem. Und zwar geht es, wie in der Überschrift zu sehen, darum ein Delegate zuzuweisen.

    Detaillierter:
    Ich habe einen ViewController. Der erstellt, wenn man einiges getan hat, einen neuen View in der TabBar-Leiste (einmalig). Danach, wenn man etwas anderes tut, erstellt es etwas (in meinem Fall handelt es sich um eine Notiz), das in den neuen vor kurzem erstellten View rein soll. Dafür habe ich im Header des ersten ViewControllers ein Protokoll gemacht und den ganzen Schnick-Schnack den man dafür so braucht. Dieses Protokoll habe ich dann natürlich in den Header des zweiten ViewControllers geschrieben. Doch natürlich muss ich ihm auch das Delegate zuweisen. Wenn ich das in der Methode "viewDidLoad" des zweiten ViewControllers mache, brauch ich ja den ersten ViewController, um ihn zuzuweisen. Einen neuen ersten View Controller kann ich ja nicht erstellen, da die Methode, in der das Delegate gebraucht wird, dann ja nicht aufgerufen wird. Wenn ich das in dem ersten ViewController zuweisen möchte, habe ich ja nicht den zweiten, um ihn zuzuweisen.
    Das war jetzt aber nicht wirklich verständlich, oder? :)
    Also hier nochmal schön zusammengefasst:

    1. ViewController möchte Daten an den 2. ViewController senden.
    Wo und wie soll ich das Delegate zuweisen :?: ?

    Ich hoffe ihr könnt mir helfen,

    Marian
  • Habe ich das richtig verstanden; beide Viewcontroller liegen als getrennte Tabs in der Tabbar? Dann ist Delegation nicht so optimal. Hier wären Notifications geeigneter.

    Falls es aber doch unbedingt ein Delegate sein soll:
    Benutzt Du XIB-Dateien und lädst Du den Tabbarcontroller aus einem XIB? Dann kannst Du die Zuweisung in der XIB-Datei des Tabbarcontrollers über ein Outlet machen.
    Ansonsten kann jeder Viewcontroller über tabBarController auf seinen Tabbarcontroller und dessen Viewcontroller zugreifen. Du kannst das Delegate also darüber zuweisen. Das ist aber sehr eklig.
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    Habe ich das richtig verstanden; beide Viewcontroller liegen als getrennte Tabs in der Tabbar? Dann ist Delegation nicht so optimal. Hier wären Notifications geeigneter.

    Falls es aber doch unbedingt ein Delegate sein soll:
    Benutzt Du XIB-Dateien und lädst Du den Tabbarcontroller aus einem XIB? Dann kannst Du die Zuweisung in der XIB-Datei des Tabbarcontrollers über ein Outlet machen.
    Ansonsten kann jeder Viewcontroller über tabBarController auf seinen Tabbarcontroller und dessen Viewcontroller zugreifen. Du kannst das Delegate also darüber zuweisen. Das ist aber sehr eklig.
    Es muss nicht unbedingt ein Delegate sein, aber ehrlich gesagt, weiß ich nicht mal, was Notifications sind :) . Ich werde sie mir mal anschauen.

    Und ja, für beide habe ich XIB-Dateien angelegt.

    PS: Ja, du hast es sehr wohl richtig verstanden.
  • Ich habe jetzt mal nach Notifications gesucht. Doch meinst du diese Mitteilungen, die auf dem iPhone/iPod auftauchen? So etwas möchte ich eben nicht haben, es geht schon darum, es in den zweiten viewController reinzubekommen.
    Und jetzt möchte ich noch auf deine Frage, ob ich das mit den XIBs mache, eingehen. Und zwar benutze ich für die beiden viewController XIBs. Aber für den tabBarController… das steht einfach fest in der AppDelegate-Datei. Wie soll man den denn in eine XIB machen?
  • Marian schrieb:

    Und jetzt möchte ich noch auf deine Frage, ob ich das mit den XIBs mache, eingehen. Und zwar benutze ich für die beiden viewController XIBs. Aber für den tabBarController… das steht einfach fest in der AppDelegate-Datei. Wie soll man den denn in eine XIB machen?

    Alte Xcode-Versionen legten standardmäßig eine MainWindow.xib-Datei an. Das geht zwar immer noch, ist aber nicht einfach zu erklären. In der zweiten Auflage wird erklärt, wie das geht ;)

    Wenn der TabBarController im App-Delegate erzeugt wird, kannst Du ja auch da die Zuweisung machen. Dort solltest Du schließlich alle Viewcontroller-Objekte haben.
    „Meine Komplikation hatte eine Komplikation.“
  • Die Sache mit den notifications: in einer Datei hörst du darauf und führst eine Aktion aus wenn eine andere Datei diese notification zuruft. Ein mächtiges Werkzeug.
    _____________________________
    Alle Angaben ohne Gewähr :)

    On the internet you can be anything you want. It's strange that so many people choose to be stupid.


    Superbientem animus prosternet
  • Um mal ein Beispiel zu nennen: ich nutze diese in einer custom cell. Bei einer bestimmten Aktion entfernt jede cell ein Bild - ohne dass ich im Code extra alle Cells durchlaufe. Ich Schreie einfach raus und die Cells die mich hören, machen was ihnen vorgegeben ist. Hab damit aber auch schon andere lustige Sachen gemacht ;) Probier's mal aus. Wirklich eines der spannendsten Sachen auf dem Gebiet :)
    _____________________________
    Alle Angaben ohne Gewähr :)

    On the internet you can be anything you want. It's strange that so many people choose to be stupid.


    Superbientem animus prosternet