Tableiste in der Split-Ansicht-Controller-Root - So stellen Sie eine Verbindung zur Detailansicht her?

StackOverflow https://stackoverflow.com/questions/5055239

  •  15-11-2019
  •  | 
  •  

Frage

Arbeiten an meinem ersten iPad-Projekt und nach vielen falschen Starts habe ich eine grundlegende Benutzeroberfläche, mit der ich mich zufrieden bin, mit der ein Split-View-Controller mit einer 4-Tab-Registerkarte am Boden des Roots / Popovers besteht. .

Ich habe 4 verschiedene Ansichtssteuerungen für jede der 4 Registerkarten. Drei davon enthalten Tabellen, der vierte enthält meine Einstellungen Sliders & Switches. All dies funktioniert gut im Porträt oder in der Landschaft.

Die Herausforderung, auf der ich stehe, ist, wie Sie die Detailansicht von diesen verschiedenen Registerkarten fährt. Ich brauche nicht unbedingt mehrere Detailansichten, da alle 3 Tabellen dieselben Daten referenzieren, die einfach anders sortiert werden. So konnten sie möglicherweise alle mit der gleichen Detailansicht verbinden.

Ich habe keine anderen Beispiele von Tabula-Bars gefunden, die so verwendet werden, aber es erscheint wie die perfekte Lösung für meine App.

Wie herstellung ich eine Verbindung, so dass, wenn ich eine Tabellenzelle auswähle, die detaileItem-Info in der Detailansicht angezeigt werden? Die LAB-Leiste wurde der Root-Ansicht in IB hinzugefügt. Sollte ich stattdessen programmgesteuert sein?

Hat jemand ein Beispielprojekt, in dem Sie dies zur Arbeit erhalten haben?

danke!

War es hilfreich?

Lösung

Don't get too caught up in the 'tabbar' piece of this. Consider how a simpler app would work: if you select a cell in the RootViewController, how would you notify the DetailViewController?

It won't be automatic. Most likely, you will have a dedicated connection from the RootViewController to the DetailViewController - and you will invoke some method on the DetailViewController from the RootViewController in something like the

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

method in the RootViewController. Indeed, this is how the template UISplitView iPad app is setup. There is an IBOutlet connection from the RootViewController to the DetailViewController.

As long as you manage the memory correctly (retain, release) - there should be no problem if each of your (root) view controllers (in the tab view) have a connection to the single DetailViewController. To keep the tab'd controllers from stepping on each other, you may wish to centralize the logic into a 'middleman' class. Maybe you want to clean something up just before ViewControllerB sorts the details that ViewControllerA just sorted ...

That part is up to you. Just note that there is no backend black magic going on such that a DetailViewController is automatically updated to show something based on a cell selected in any RootViewController.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top