2014-12-30 14 views
5

Ich versuche zu verstehen, modal vs Push-Segment und lesen Sie einige Q & A wie this und this. Ein Punkt, den ich aus diesen Antworten verwirrt bin, ist "Der Moderator sollte sich darum kümmern, die VC, die er präsentierte, zu verwerfen."Dismiss modal segue

Zum Beispiel zeigt das Beispiel, das ich schreibe UIPageViewController etwas wie das Beispiel here, mit einem Knopf am unteren Rand der Seite mit Namen "Skip".

In Storyboard habe ich einen Übergang (vom Typ Modal) von "Überspringen" zu einem anderen "View Controller" (sagen wir LoginViewController) erstellt, aber wo muss ich den UIPageViewContoller abmelden (wenn überhaupt) und wie?

EDIT: Nach wenig mehr lesen, es scheint UIPageViewController (Welche überspringen Taste hat) sollte darauf achten LoginViewController zu entlassen (weil UIPageViewController ist der Moderator).

In meinem Fall, nach der Anmeldung abgeschlossen, möchte ich zur "Menü" -Seite navigieren, wie kann ich dann UIPageViewController fragen, den "LoginViewController" zu entlassen und zu MenuController zu wechseln? Ich konnte kein Beispiel finden, wie das funktioniert. Jede Hilfe wäre willkommen!

+1

Hallo, wenn Sie über EXIT Feature im Storyboard wissen, können Sie das versuchen. http://StackOverflow.com/Questions/12561735/What-are-unwind-segues-for-and-how-do-you-use-them – Deepak

+0

Ich habe eine Idee über EXIT, aber könnten Sie bitte etwas mehr erklären Wie könnte ich es in diesem Fall verwenden? – kosa

+0

eigentlich bin ich mir nicht sicher, ob es funktioniert oder nicht, aber mit EXIT-Funktion können Sie zuerst den UIPageViewController ablehnen und dann vom übergeordneten Controller von UIPageViewController können Sie LoginViewController aufrufen. – Deepak

Antwort

5

Wie Sie den Link Tutorial haben Sie in Frage gestellt.

Es gibt eine APPViewController, die in AppDelegate Wurzel für die UIPageViewController und auch ist, so oben auf dieser Ansicht, erfordern eine Taste überspringen, die vor allem die Subviews in AppViewController ist. So wird sein IBAction Ereignis nur in AppViewController sein.

Jetzt zuerst ändern Sie Ihre AppDelegate self.window.rootViewController zu LoginViewController. In LoginViewControllerviewDidLoad Ereignis, GegenwartModal UIPageViewController.

Jetzt in seinem Aktionsfall Sprungtaste können Sie so schreiben:

[self dismissViewControllerAnimated:YES completion:nil]; 

es alle Ihre AppChildViewControllers, also automatisch entlassen und wird LoginViewController angezeigt werden, die bereits hinter ist.

Dies ist nur eine grundlegende Logik, um Ihr Ziel zu erreichen, müssen Sie möglicherweise Code gemäß Ihrer Projektdurchführung ändern.

Hoffe, das hilft.

+0

Danke! Werde es morgen versuchen. – kosa

+0

@Nambari: Hast du das gelöst? – Mrunal

+0

Ich entschied mich für "push" anstelle von "modal" wegen der wenigen Änderungen der Strömung. Aber ich denke, Ihre Antwort wird die Lösung sein, wenn wir "modal" verwenden. Ich akzeptiere deine Antwort. – kosa

0

Zuerst den UIPageViewController abweisen und dann mit Delegate- oder Block-Methoden (was auch immer möglich) benachrichtigt werden, wenn Sie die Überspring-Taste im übergeordneten Controller drücken und dann LoginViewController aufrufen.