TabBarViewController innerhalb eines SplitViewController

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

  • TabBarViewController innerhalb eines SplitViewController

    Ich habe innerhalb eines Splitviewcontrollers einen TabBarController in der DetailView, dessen TabBar im Landscape Modus (iPad vertikal) auf der rechten Seite dargestellt werden soll und im Portrait-Modus unten.
    Leider erscheint das TabBarelement jedoch immer unten. Kann das daran liegen, dass der TabBarController alle ihm untergeordneten Views fragt, ob diese Rotation unterstützen und hier ein View dies nicht bejaht? Wie könnte ich in diesem Fall die Rotation der Subviews unterstützen. Müssen diese subgeclassed werden?

    Danke!
  • iOSDev schrieb:

    Kann das daran liegen, dass der TabBarController alle ihm untergeordneten Views fragt, ob diese Rotation unterstützen und hier ein View dies nicht bejaht?

    Ja

    iOSDev schrieb:

    Wie könnte ich in diesem Fall die Rotation der Subviews unterstützen. Müssen diese subgeclassed werden?

    In dem Du shouldAutoRotateToInterfaceOrientation: überschreibst. Wenn die Controllerklasse nicht von Dir ist, musst Du wahrscheinlich eine Unterklasse schreiben.
    „Meine Komplikation hatte eine Komplikation.“
  • Danke!

    Was ist aus Eurer Sicht die empfohlene Vorgehensweise, um Messages aus der Splitview-Masterview zu den TabBarViews des TabBarViewControllers (=DetailViewController) zu senden?

    Im MasterviewControler befindet sich ein Tableviewcontroller, welcher verschiedene Auswahlmöglichkeiten anbietet. Bei Auswahl einer dieser Möglichkeiten sollen alle TabBarViews entsprechend über die Änderung und die neue Auswahl informiert werden. In meiner bisherigen Version verwende ich keinen TabBarViewController, sondern nur ein simples DetailView, bei dem die Properties entsprechend gesetzt werden. Wie sollte ich das bei einem TabBarController entsprechend gestalten? Leider komme ich momentan nicht weiter und wäre über Eure Tipps sehr dankbar.

    Nochmals herzlichen Dank!
  • Ok, herzlichen Dank! Das werde ich bei der Implementierung gerne bedenken.

    Zur Zeit hänge ich im Bereich der SplitViewController-Rotation an einer anderen Stelle:

    Die Rotation funktioniert bisher grundsätzlich gut (incl. der TabBarViews, die als Detailview fungieren), auch wird auf der Toolbar, welche ich am oberen Rand des DetailViewControllers platziert habe, der BarButton zur Popver-Aktivierung angezeigt und entfernt - je nach Modus (Landscape oder Portrait).

    Allerdings - und das ist das Problem - wird der BarButton erst angezeigt, nachdem einmal zwischen Portrait und Landscape gewechselt wurde. Beim ersten Aufruf der App im Portrait-Mode erscheint der Button nicht, obwohl nachfolgende Methode ausgeführt wird:

    Quellcode

    1. - (void)splitViewController:(UISplitViewController *)svc
    2. willHideViewController:(UIViewController *)aViewController
    3. withBarButtonItem:(UIBarButtonItem *)barButtonItem
    4. forPopoverController:(UIPopoverController *)pc
    5. {
    6. barButtonItem.title = @"Company List";
    7. NSMutableArray *items = [[self.toolbar items] mutableCopy];
    8. [items insertObject:barButtonItem atIndex:0];
    9. [self.toolbar setItems:items animated:YES];
    10. }
    Alles anzeigen


    Beim Debuggen (Kommando: "po items") wird die Meldung "Can't print the description of a NIL object." ausgegeben. Die Toolbar scheint auch auf Nil zu verweisen. Allerdings nur beim ersten Aufruf dieser Methode.
    Kann es sein, dass die Toolbar beim ersten Aufruf der Methode willHideViewController noch nicht zur Verfügung steht?

    Habt Ihr eine Erklärung für dieses Phänomen?

    Nochmals herzlichen Dank für Eure Tipps!


    P.S. Ich habe meine Frage etwas überarbeitet, nachdem ich einen kleinen Bug selbst beheben konnte.

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