2011-01-15 8 views
0

Ich arbeite an einer App, um etwas mehr über das Kakaotouch-Framework zu lernen und beginne, die UISplitViewController zu verwenden. Von dem, was ich bisher gelernt habe, hat dies eine Eigenschaft namens viewControllers, die ein Array ist, das die Master- und Detailansicht-Controller für die App enthält.Ansicht des Detailfensters auf UISplitViewController ändern

Was ich versuche einzurichten ist ein Ordner-Navigationssystem in der masterVC, dann, wenn eine bestimmte Datei ausgewählt ist, ist es in der detailVC geöffnet. Ich habe die Ordnernavigation funktioniert und kann die Details der Dateien zwischen den zwei Ansichtscontrollern übergeben.

Mein Problem ist, dass es mehrere Arten von Dateien gibt, die unterschiedliche Ansichten benötigen, um sie korrekt anzuzeigen.

Zum Beispiel wird ein JPEG-Bild einen Bildbetrachter haben, während ein HTML-Dokument eine Web-Ansicht und ein TXT-Dokument eine Text-Editor-Ansicht haben wird.

Was ist der beste Weg, um den View-Controller des Detailfensters zu ändern?

Bin es besser, einen einzigen View-Controller zu haben und je nach Dateityp verschiedene Ansichten ein- und auszublenden? Oder gibt es eine Möglichkeit, den Viewcontroller vollständig zu entfernen und an seiner Stelle den passenden Controller hinzuzufügen?

Dank

Antwort

3

Ich würde denken, dass Sie mehrere View-Controller verwenden sollten. Es wird bestimmt eine Menge Logik in jedem dieser einzelnen View-Controller geben, die Sie erwähnt haben und die in seinem eigenen View-Controller enthalten sein sollten.

Wie für die entsprechenden View-Controller angezeigt wird, können Sie ganz einfach ein view ein UIViewController zu einem UIViewController Ansicht hinzufügen, indem Sie: [self.view addSubview:myTextEditorVC.view]. Mit anderen Worten, Ihr detailVC könnte mit der Logik umgehen zu wissen, welche Art von UIViewController es anzeigen muss, instanziieren, dass UIViewController, und seine view innerhalb der detailVCview anzeigen.

Hoffe, das hilft!

+0

Dank donkim, haben ein besseres Verständnis für die Logik dahinter jetzt gerade. Ausgezeichnete Antwort. – Jack

0

Sie sollten verschiedene View-Controller austauschen. In Xcode 6 können Sie einen "Show Detail" -Sequenz vom Master verwenden, um auf einen anderen Navigationscontroller zu zeigen, der Ihre andere Detailansicht enthält.

Here's an quick example.

Verwandte Themen