Storyboards und UISplitViewController - Warum wird nur der Master-VC angezeigt?

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

  • Storyboards und UISplitViewController - Warum wird nur der Master-VC angezeigt?

    Hallo,

    Ich bin dabei eine XIB-App auf die Verwendung von Storyboards umzustellen und stehe dabei irgendwie auf dem Schlauch. Für das iPad Layout soll ein UISplitViewController verwendet werden. Ich habe also MainStoryboard~ipad.storyboard hinzugefügt und im IB den UISplitViewController in das Storyboard gezugen. Der SplitVC ist natürlich der Root-VC.

    Wenn ich die App aber nun starte, erscheint ausschließlich der Master-VC. Egal wie ich das Gerät drehe, der Detail VC wird nie eingeblendet und der Master-VC erhält sich so, als wäre er gar nicht teil eines Split-VCs... Warum?

    Auch wenn ich die Master- und Detail-VC jeweils eigene Klassen zuweise verhält es sich nicht anders. Bei der Verwendung von XIBs muss man doch auch nichts weiter machen um die Grundfunktion des Split-VCs (Detail im Hoch-, Master+Detail im Querformat) einzurichten. Was übersehe ich hier?
  • Nein, ich habe keinen Delegate gesetzt. Welche Methoden sollte dieser denn implementieren? Alle Methoden im UISplitViewControllerDelegate sind optional und doch eigentlich nur dafür da den Delegate über aktuelle Änderungen des SplitViewControllers zu informieren. Welche dieser Methoden soll notwendig sein, damit der SplitViewController seine Grundfunktion korrekt erfüllt? In der bisherigen XIB Variante hat der SplitViewController auch keinen Delegate
  • Dein Storyboard hat irgendeine Macke: Wenn ich mir in applicationDidFinishLaunching:withOptions: im Debugger po self.window.rootViewController ausgeben lasse, erhalte ich als Ausgabe eine Referenz auf einen Navigationcontroller. Die App ignoriert anscheinend den Splitviewcontroller im Storyboard. Bei einem neuen Master-Detail-Projekt ist das jedoch nicht der Fall.
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    Dein Storyboard hat irgendeine Macke: Wenn ich mir in applicationDidFinishLaunching:withOptions: im Debugger po self.window.rootViewController ausgeben lasse, erhalte ich als Ausgabe eine Referenz auf einen Navigationcontroller. Die App ignoriert anscheinend den Splitviewcontroller im Storyboard. Bei einem neuen Master-Detail-Projekt ist das jedoch nicht der Fall.


    Vielen Dank für die Analyse. Irgendeine Idee was da schiefgelaufen sein könnte? Bei einer neuen Master-Detail App läuft auch bei mir alles rund. Ich will aber keine neue App erstellen, sondern eine bestehende erweitern. Zudem schon bestehenden iPhone Storyboard habe ich also ein iPad Storyboard hinzugefügt. Dieses ist zu beginn leer und ich ziehe einfach einen Splitview Controller herein und aktiviere "Is Inital View Controller". Mehr sollte doch eigentlich nicht notwendig sein. Was kann man dabei falsch machen?

    Bei dem Demo bin ich im Prinzip genauso vorgegangen: Ich bin mit einer Single-View App gestartet und habe dann im Storyboard den einfachen VC durch einen Split-VC ersetzt. Auch hier kann man eigentlich nicht viel falsch machen.
  • macmoonshine schrieb:

    Dein Storyboard hat irgendeine Macke: Wenn ich mir in applicationDidFinishLaunching:withOptions: im Debugger po self.window.rootViewController ausgeben lasse, erhalte ich als Ausgabe eine Referenz auf einen Navigationcontroller. Die App ignoriert anscheinend den Splitviewcontroller im Storyboard. Bei einem neuen Master-Detail-Projekt ist das jedoch nicht der Fall.


    Ich bekomme bei seinem Beispielprojekt aber folgendes:




    po self.window.rootViewController

    <UISplitViewController: 0x7a8b3a00>


    Fuppes bedeutet bei uns Quatsch ;)
  • Hallo, vielen Dank für den Tipp. Wenn ich das Storyboard im Demo so ändere wird bei mir auch alles richtig angezeigt. Ändere ich das Storyboard in meiner App ebenso tut sich leider gar nichts. Auch wenn ich das Storyboard der App durch jenes aus dem Demo ersetze wird dort immer noch nur der Master VC angezeigt. Zum Mäuse melken...
  • Hallo,

    ich habe die Storyboards noch einmal komplett entfernt (das iPad Storyboard hatte ich zuvor schon mehrfach neu erstellt). Hiernach ist Xcode abgestürzt und beim nächsten Start wurden die Storyboards noch angezeigt. Bei dem Versucht auf diese zuzugreifen oder diese noch einmal zu löschen ist Xcode aber wieder abgestürzt. Ich habe schließlich manuell alle Verweise aus der xcodeproj entfernt. Ganz wohl ist mir bei solch manuellen Eingriffen zwar nicht, aber es scheint alles zu laufen.

    Nachdem ich die Storyboards nun neu erstellt habe funktioniert alles. Hoffen wir, dass es so bleibt.

    Vielen Dank für die Hilfe!