Variablen in Tabbars

  • Variablen in Tabbars

    Hi,


    Ich hoffe ich bin hier richtig, falls ich es wo anders eher reinschreiben sollte, bitte bescheid sagen.


    Wie kann ich eine Variable von einer View in die nächste mit nehmen?

    Ich habe eine UITabbar, auf der ersten Seite habe ich einen kleinen FileExplorer gebaut, nun möchte ich wenn ich eine Datei ausgewählt habe die Adresse mit nehmen und in einem anderem TAB dann die Datei öffnen. Ich brauche nur eine Möglichkeit, wie ich also eine Variable, sagen wir vom Typen String mit rüber zu einer anderen View (Tab) nehme.

    Hoffe ihr könnt mir helfen, denke das das eigentlich ganz einfach ist, ich komme gerade nur nicht drauf.

    Schon mal danke für eure Hilfe.

    Gruß Cabaalo
  • Noch mal kurz zum Aufbau:



    Ich habe eine TabBar erstellt, im ersten TAB habe ich mit Tabellen eine Navigation eingebaut. Als Inhalt der Tabellen habe ich einen FileExplorer eingebunden. Wenn ich mich nun durch Navigiere und auf eine Datei gehe, wird mir diese in einer Detailansicht angezeigt. (siehe Bild).

    Nun habe ich in dieser View einen Öffnen Button, wenn ich darauf klicke öffnet er den 2. Tab. Dort habe ich eine Textview, die den Inhalt der ausgewählten Datei anzeigen soll. Das anzeigen generell ist kein Problem, ich muss nur irgendwie der Textview den Pfad der ausgewählten Datei geben. Damit diese weiß was sie anzeigen soll.

    HOffe so ist es verständlicher zu dem Aufbau.

    Gruß
    Cabaalo

    P.S.: Super die Reaktionszeit, wie lange es hier dauert bis einem geantwortet wird.
  • Dein Screenshot enthält keine TabBar. Nach der Navigationsleiste zu urteilen, ist das ein NavigationController.

    Das, was Du machen möchtest, ist ein typischer Master-Detail-Anwendungsfall. Du wählst im Master-View ein Objekt aus, das Du Dir im Detail-View anschauen möchtest. Gib' dem Detail-View-Controller eine Property für die anzuzeigenden Daten. Wenn der Master-View-Controller diesen öffnet, braucht er nur die Property zu setzen.
    „Meine Komplikation hatte eine Komplikation.“
  • ups, habe ich zu viel abgeschnitten, hier noch mal das richtige Bild.

    Also wenn ich dich richtig verstehe muss ich nur in meiner Masterview (Rootview [meinen TabController]} nur eine zusätzliche Variable einfügen diese mit getter und setter versehen, das ich aus der DetailView die dann setze und in dem anderem Tab dann wieder aufrufe richtig?
  • Danke für die Antwort.

    Ich muss leider zu geben und stehe gerade total auf den Schlauch. Ich weiß genau was du meinst. Ich weiß gerade nur nicht wie ich das umsetzen soll. Ich kann ja nicht einfach ein neues Objekt machen, da die Variable ja an eine bereits bestehende View übergeben muss.

    Sorry, kann nur wieder sagen das ich total auf dem Schlauch stehe gerade.
  • Klar, nutze ich ja auch ganz oft, muss ich ja sonst geht ja gar nichts.

    Beispiel:
    DirectoryTableViewController *directoryTableViewController = [[DirectoryTableViewController alloc] initWithNibName:@"DirectoryTableView" bundle:nil];

    [self.navigationController pushViewController:directoryTableViewController animated:YES];

    directoryTableViewController.directoryPath = selectedPath;

    [directoryTableViewController release];


    Hier erstelle ich einen neuen DirectoryController übergeben ihm den directoryPath usw.


    Das ist kein Problem, das weiß ich auch wie ich mache. Ich stehe wie gesagt gerade nur auf dem Schlauch, weil ich ja keine neue View erstelle, der ich dann Variablen mit gebe, sondern ich habe ja eine die bereits existiert und muss der was übergeben.
  • Cabaalo schrieb:

    So habs, war ganz einfach. Danke für deine Hilfe.


    [AppDelegate.rootController.viewControllers objectAtIndex:1];


    Das war der Befehl der mir gefehlt hat um auf die Views zu zugreifen.

    Darauf würde ich mich aber nicht verlassen. Wie macmoonshine schon gesagt hat, mach doch in deinem AppController ein Outlet auf den zweiten View-Controller, dann hast du eine Property welche da drauf zeigt, anstatt dass du diese von dir genannte Methode nehmen musst.


    Quellcode

    1. appController.detailViewController.filePath = <dein Pfad>;
    Widgetschmie.de • Life is too short for gadgets
  • Cabaalo schrieb:

    So habs, war ganz einfach. Danke für deine Hilfe.


    [AppDelegate.rootController.viewControllers objectAtIndex:1];


    Das war der Befehl der mir gefehlt hat um auf die Views zu zugreifen.


    Wahnsinn auf was für Ideen die Leute kommen nur um nicht die Grundlagen des Programmierens lernen zu müssen....

    Ich bin beeindruckt.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)