In einer iOS 5 Storyboards, wie Sie drücken Sie eine neue Szene, um die ursprüngliche Ansicht-controller von einem Popover?
Ich bin erstellen einer popoverSegue von einem neuen view-controller und drücken wollen einen Dritten view-controller auf den ursprünglichen Stapel. Dies ist, wie ich bin, erstellen Sie die Anwendung:
- Erstellen Sie eine neue
Single View Application
- Wählen Sie
Use Storyboards
- Wählen Sie die
MainStoryboard.storyboard
Datei. - Wählen Sie nur Ansicht-Controller, ändern Sie die
Title
undIdentifier
zuinitialView
, dann wählen SieEditor->Embed In->Navigation Controller
- Ziehen zwei neue
View Controller
Objekte aus der Objects-Bibliothek auf die Leinwand - Ändern Sie die
Title
undIdentifier
von den neuen View Controller:popoverView
undnewView
. - Hinzufügen
Round Rect Button
Objekt aus der Bibliothek zuinitialView
undpopoverView
. - Hinzufügen
Label
Objekt aus der Bibliothek auf `newView. - - Steuerelement klicken Sie auf die Schaltfläche in der
initialView
und ziehen Sie, umpopoverView
. - Wählen Sie die
Popover
option aus derStoryboard Segues
Menü, das erscheint. - - Steuerelement klicken Sie auf die Schaltfläche in der
popoverView
und ziehen Sie, um dienewView
. - Wählen Sie die
Push
option aus derStoryboard Segues
Menü. - Build & Run.
Klicken Sie auf die erste Schaltfläche, und das popover angezeigt, aber beim klicken auf die Schaltfläche in der popover, passiert nichts (es sollte schieben Sie die neue Ansicht aber nicht.)
Was ich wollen zu tun, ist für Sie zu drücken auf die Navigation Controller
stack, bin aber nicht sicher, wie das einrichten der storyboard für, die.
Irgendwelche Ideen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bist du erwarten, dass die
UINavigationController
Hierarchie zu erweitern, sich in einer vorgestellten popover. Es nicht. Das gleiche gilt für die Präsentation von modal-view-Controller. Wenn Sie die log -self.navigationController
impopoverView
, würden Sie sehen, dass es null ist.Einbetten
popoverView
in seine eigeneUINavigationController
. Denken Sie daran, dass, wenn Sie überschreibenprepareForSegue:sender:
und versucht Sie zu konfigurieren der popover, die Sie brauchen, um dietopViewController
ausdestinationViewController
als Ziel ist nun eine Instanz vonUINavigationController
.Klingt wie es funktionieren sollte, aber wenn es nicht funktioniert, versuchen Sie folgenden:
1. Klicken Sie auf den übergang, der nicht die Arbeit und geben einen Bezeichner. Lassen Sie uns sagen, es ist PopoverToNewSegue.
In Ihrer Implementierungsdatei für die popover-view-controller, eine Aktion hinzufügen, wenn die Schaltfläche geklickt wird.
Dass, sollte die Funktion void zurück und fügen Sie die folgende Zeile:
[self performSegueWithIdentifier:@"PopoverToNewSegue" sender:self];
Das sollte Ihr segue läuft. Ich habe bemerkt, dass, leitet über nicht immer funktionieren, wie Sie erwarten, aber diese funktioniert bei mir ohne fehl.