iOS Wechsel eine eingebettete Ansicht in der storyboard
Ich habe versucht, dies herauszufinden, den ganzen Tag und ich weiß, es sollte in der Lage sein zu tun, sondern wird neu in der iOS-Entwicklung mit Objective-C und nicht Appcelerator ich mich mit newbie-Fragen.
Was ich versuche zu erreichen, ist eine eingebettete Ansicht in einer meiner anderen Ansichten, aber in der Lage sein zu wechseln, die Ansicht eingebettet ist, durch die Programmierung. Ich bin mit storyboards. Als ich versuchte, verwenden Sie die view-container zeigt die beigefügte Ansicht, aber ich kann nicht Anhängen, mehrere Ansichten, um die container in das storyboard. Ich hatte ein Bild, aber zu meinem ärger kann ich keine Bilder posten hier, weil ich nicht genug "rep" - Punkte, also ich habe es auf meiner Website:
http://static.c6gx.com/images/iphone-embedded-views-diagram.jpg
Später möchte ich dann, was zu sein scheint ein push-segue in einem view-container, aber ich möchte einfach Umschalten können zwischen eingebetteten anzeigen 1, 2, 3 usw. Soll ich mit einem view-container, um dies zu erreichen, oder eine andere Art von controller? Wie könnte ich dann den übergang nennen um die Ansicht zu ändern?
Vielen Dank für jede Hilfe können Sie zur Verfügung stellen.
- Einbetten leitet über Fremd sind, dass Sie nicht so funktionieren wie Sie es erwarten. Sie haben keinen Zugriff auf die Ansicht bietet eine embedded view-controller, so haben Sie, um eine custom segue zu tun, was Sie wollen. Sie können Optional einen PageController innerhalb eines embed-controller, und scrollen deaktivieren (anschließend die Seite manuell)
- Danke, ich werde geben, dass ein Schuss und sehen, was ich mit oben kommen kann.
- keinen Zugriff auf die Ansicht bietet eine embedded view-controller" - ja, das können Sie in der Tat. Wenn es ein Unterklassen-view-controller, können Sie den Zugriff auf die view-Hierarchie, wie jede andere view-controller. Wenn nicht, dann können Sie immer noch Zugriff auf die Ansichten, die durch die Eltern childViewControllers Eigenschaft.
- Ich weiß nicht, ob Sie sah, wie mein original-post, aber ich habe herausgefunden, was falsch war mit meinem teilweise funktioniert der code, und umgebucht meine Antwort. Dies ist eine weitere Möglichkeit, es zu tun, zusammen mit der Art wie Richard erwähnt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schalten Sie die Ansicht-Controller, wie Sie tun würden mit einen container view controller. Ich machte ein Projekt Hinzugefügt, wo ich eine container-Ansicht (2 eigentlich, aber wir sind nur den Umgang mit einer hier), und fügte hinzu, dieser code für die embedded controller, bekommen Sie automatisch, wenn Sie ziehen in der container-Ansicht. Die controller bin ich dem Wechsel zu, NewRightController, ist ein UIViewController subclass -- in der storyboard-ich habe die controller-Größe auf "Freeform", und verändert die Größe der Ansicht entsprechend der Größe des embedded controller ' s view. Diese nicht wirklich Einfluss auf die Größe der Ansicht (noch Protokolle als Vollbild), es macht es nur einfacher, das layout der Untersichten.
Fand ich nach viel Experimentieren, dass der Weg, um den Blick auf die richtige Größe und um die Größe richtig nach der rotation wurde zunächst der Rahmen der neuen Steuerung die Sicht auf die container-view bounds, aber dann nach dem übergang animation, fügen Sie Einschränkungen, um die neue Ansicht zu halten, dass es große rechts nach der Drehung. Da dieser code kann verwendet werden, über und über, ich steckte es in eine Kategorie UIView, mit einer Methode, constrainViewEqual:. Hier ist der code dafür:
So nach viel Herumspielen habe ich es zur Arbeit, auf welche Weise man sich vorgestellt hat. Es hat keine übergänge an dieser Stelle, aber ich wollte nach dem code für andere zur Ansicht.
In der storyboard-ich habe eine view-controller für das gesamte Spiel, das hat ein view-container in es-und a-Taste. Die Ansicht eingebettet in das Spiel Ansicht ist ein page controller enthalten wird die andere Art von Fragen. Dann unbefestigt in das storyboard werden die verschiedene Art der Frage layouts, in meinem Fall die teamDisplay und locationDisplay.
In der QuestionViewController, ich habe zwei Eigenschaften die .h-Datei:
Deklariert eine Methode:
In der .m-Datei, synthetisiert Sie:
In der viewDidLoad-Methode:
Und dann umgesetzt die changeView-Methode:
In der GameViewController, wo sich der button befindet, fügen Sie eine Aktion auf die Schaltfläche, und rufen Sie den neu erstellten changeView-Methode aus der QuestionViewController.
... Und das ist es. Ein Klacks oder?! 😉
Ich habe keine Ahnung, ob das ist der richtige Weg, dies zu tun, aber es funktionierte. Anregungen oder Verbesserungen sind willkommen.
Wollte ich das gleiche tun, und das ist, was ich gefunden habe.
Erstellen Von Benutzerdefinierten Container View Controller
Den Kern von ihm ist, erstellen Sie einen navigation-controller, den Sie einbetten, in der container-Ansicht, die es Ihnen ermöglicht die Navigation durch verschiedene Ansichten, wie Sie möchten.
Hier ist ein kurzes Beispiel/walkthrough:
Hoffe, das hilft!