Von AppDelegate aus alle Views meines Storyboards mit meinem Model Pointer versorgen

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

  • Von AppDelegate aus alle Views meines Storyboards mit meinem Model Pointer versorgen

    Guten Tag zusammen,

    in meiner AppDelegate wird ein Objekt meiner Datenmodelklasse erstellt.
    Nun möchte ich gerne, dass danach alle Views im Storyboard den Pointer bekommen.

    Ich habe es jetzt ein paar Stunden mit Google, Forum & Co versucht, ich kriege es nicht hin.

    Mein RootViewController ist ein Tab Bar Controller mit 3 Tabs.

    Quellcode

    1. UITabBarController * tabBarController = (UITabBarController *)[[self window] rootViewController];
    2. NSArray * viewControllers = [tabBarController viewControllers];


    In dem Array müssten Sie nun sein, meine Views.
    Die zweite View (Index = 1) ist/sollte ein Objekt meine Controller-Klasse TasksViewController sein, die abgeleitet ist von UITableViewController.

    Abfragen wie isKindOfClass bezweifeln aber meine Aussage und sind somit false. Weil dem vorgeschaltet ist ein UINavigationController.

    Meine TasksViewController Klasse enthält eine Property "modelPtr", der nun der Pointer übergeben werden soll.

    Wie muss ich das jetzt casten, wenn man es so überhaupt macht, damit ich den Pointer übergeben kann?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von pierre ()

  • Dann musst du deinen Controller aus dem NavigationController nehmen:

    Quellcode

    1. UITabBarController * tabBarController = (UITabBarController * )[[self window] rootViewController];
    2. NSArray * viewControllers = [tabBarController viewControllers];
    3. UINavigationController * taskNavigationController = [viewControllers objectAtIndex:1];
    4. TaskController * taskController = (TaskConroller *)[taskNavigationController topViewController];
    5. [taskController setProperty: "bla"];
  • matz schrieb:

    Dann musst du deinen Controller aus dem NavigationController nehmen:

    Quellcode

    1. UITabBarController * tabBarController = (UITabBarController * )[[self window] rootViewController];
    2. NSArray * viewControllers = [tabBarController viewControllers];
    3. UINavigationController * taskNavigationController = [viewControllers objectAtIndex:1];
    4. TaskController * taskController = (TaskConroller *)[taskNavigationController topViewController];
    5. [taskController setProperty: "bla"];

    Ja Matz, da habe ich mich in die Irre führen lassen. Danke für den Denkasntoß.