Zurücksetzen Storyboard auf Logout
Baue ich ein IOS 5.1 web client-app, die mithilfe eines Storyboards. Einer meiner Aktionen ist "logout", in der ich zurücksetzen will mein root-Ansicht zu der ersten Ansicht erstellt, die von der root-Blick auf das Storyboard. (Wenn Sie anmelden, werden einige Elemente entfernt oder Hinzugefügt, basierend auf, wer Sie sind; wenn Sie sich ausloggen, ich möchte, um diese zurückzusetzen auf Ihre Standard Werte, die ich angegeben habe im storyboard.)
Merke ich, dass ich könnte programmgesteuert reset/re-fügen Sie alle Elemente, dann aber was gutes ist das storyboard? Ich vermute, es muss einen Weg zurück zu Platz eins durch ein Neuladen der Datei anzeigen, richtig?
- Haben Sie jemals herausfinden? Ich habe genau das selbe Bedürfnis für diese...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich die folgende Vorgehensweise funktioniert für mich. Bitte beachten Sie, dass ich ARC nicht sicher, ob dies hat viel Einfluss auf die Lösung jedoch. Erste, im app-delegate-Klasse, in
application:didFinishLaunchingWithOptions:
ich capture das erste Storyboard-Instanz mit den folgenden code-Zeile:(Offenbar gibt es eine Instanz-variable
UIStoryboard* _initalStoryboard;
)Dann habe ich die folgende Funktion definiert, die in meinem app-delegate:
Bitte beachten Sie die für in-Schleife entfernt alle Untersichten von
window
. Die UIWindow rootViewController Dokumentation besagt:Aber ich habe nicht gefunden, dies der Fall zu sein... also Entferne ich die bestehenden Ansichten ich explizit vor der Zuweisung einen neuen rootViewController. Ich habe nicht gefunden, keine sorgen Nebenwirkungen oder memory-leaks mit dieser Methode. Ich bin keineswegs ein Experte für die Magie des UIKit also ich würde vorschlagen, Sie testen testen und testen Sie diese Lösung, wenn Sie planen, es selbst. Cheers
[self.window.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]
Folgende Werke große für mich, wenn Sie einen NavController-basierte Struktur:
Ordnen Sie die Storyboard ID "Login", um Ihre Login-VC, um für diese zu arbeiten.
Folgende Werke für mich, wenn ich einen
UISplitViewController
-basierte Struktur (getestet auf iOS 8+):Entfernen Storyboard von Projekten Allgemeinen -> Bereitstellung Info, so dass die dropdown-sieht aus wie der unten, und Sie müssen zum konfigurieren der storyboard-in-code.
Irgendwo in
AppDelegate.m
Vermeiden Sie code-Duplikate, rufen Sie diese Funktion auf aus
application:didFinishLaunchingWithOptions:
als first-time-setup -Innerhalb eines view-controller Sie sind bereit zu präsentieren Benutzeroberfläche Benutzer, entfernen Sie Spritzen anzeigen. Für Beispiel (Swift):