2016-09-20 1 views
-1

zu präsentieren Ich bin mir nicht sicher, wie man eine Login-Ansicht überall in meiner App wiederverwenden ... so wenn ich auf jedem Bildschirm I klicken kann mich einfach anmelden und dann die Ansicht ablehnen ... Ich denke, ich finde kein Tutorial über das modale Anzeigen einer gemeinsamen Ansicht über die gesamte App hinweg ...Ich versuche zu lernen, eine modale "Login-Ansicht" von überall in der App

+0

Sind Sie 'UIStoryboard' mit? – Laffen

+0

-1. Hast du genug gesucht? Ich empfehle dringend, dass Sie [diese] (http://stackoverflow.com/questions/19962276/best-practices-for-storyboard-login-screen-handling-clearing-of-data-upon-logou) Frage sehen, es ist in Objective-C aber die Logik ist genau das Gleiche. Siehe auch [SWIFT Video Tutorial] (https://www.youtube.com/watch?v=uKXyLmYA0-c&list=PLoN_ejT35AEipRnSHSv5wlHGyjOnHReqx). Grundsätzlich, wo immer Sie wollen, müssen Sie 'presentViewController' verwenden und dann nach dem Abschluss wieder ablehnen. FYI-Anmeldefenster sind * in der Regel * modal zu präsentieren ... da sie nicht zum natürlichen Ablauf gehören. – Honey

Antwort

0

Dies sollte wahrscheinlich funktionieren. Definieren Sie Ihre Ansicht im Login-View-Controller. let storyboard = UIStoryboard(name: "Main", bundle: nil) let vc = storyboard.instantiateViewControllerWithIdentifier("loginViewController") as! UIViewController vorhanden, wenn Sie den Anmeldebildschirm anzeigen möchten.

self.presentViewController(vc, animated: true, completion: nil) 
+0

Muss ich das in jedem meiner anderen Viewcontroller machen oder kann ich das irgendwie auf App-Ebene machen? – BostonMacOSX

+0

Sie können dies in einer Funktion in einer beliebigen Datei definieren und aufrufen. Funktion wann immer notwendig. –

-1

Versuchen Sie dies .. (Sie einzelne Instanz loginViewController machen kann und dieser Code, wo jeder von App verwenden.)

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"main" bundle:nil]; 
UIViewController *loginViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"loginViewController"]; 
UIViewController *lastPresentedViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController]; 

while (lastPresentedViewController.presentedViewController) { 
    lastPresentedViewController = lastPresentedViewController.presentedViewController; 
} 

[lastPresentedViewController presentViewController:loginViewController animated:true completion:nil]; 
+0

Die Frage wird mit "swift", nicht mit "objective-c" markiert. – Moritz

Verwandte Themen