2016-10-03 1 views
0

Ich habe Probleme herauszufinden, wie Autorisierungstoken als Reaktion auf eine App ausgeführt werden, die aus einem ausgesetzten Zustand zurückkommt.Wie kann iOS Apps am besten mit einem Token behandelt werden, das aus dem Status "Ausgesetzt" zurückkehrt?

In meinem App-Delegaten habe ich eine HTTP-Anfrage, um das Autorisierungs-Token zu validieren, das im Schlüsselbund gespeichert ist. Dies tritt auf, wenn die App aktiv wird. Wenn der Statuscode 401 lautet (Token nicht gültig), wird der Benutzer zum Hauptanmeldebildschirm weitergeleitet. Das funktioniert gut und hat keine Probleme.

Ich bekomme Probleme, wenn das Token noch gültig ist (Statuscode 200). Das Problem besteht darin, dass die App, sobald sie aus dem Status "Ausgesetzt" zurückkehrt, automatisch zum Anmeldebildschirm (Initial View Controller) und nicht zum Bildschirm, auf dem der Nutzer die App geschlossen hat, startet. Vom App-Delegaten habe ich versucht, zu einem neuen View-Controller zu wechseln, indem ich ihn als Root-View-Controller einstelle. Obwohl dies funktioniert, ist die Navigationsleiste nicht geladen.

Gibt es eine andere Möglichkeit, mit Apps umzugehen, bei denen die Rückkehr aus dem Status "Suspended" dem Benutzer erlauben sollte, fortzufahren?

Antwort

0

Sie machen fast alles richtig, wie ich aus

schließen kann Obwohl dies funktioniert, wird die Navigationsleiste nicht geladen.

Erstellen Sie einfach eine UINavigationController Instanz, die eine Ansicht vom Storyboard laden würde.

Ich mache es in der Regel wie folgt aus:

let storyboardID = LocalAuthWorker.cityInitiallySelected() ? MainStoryboardID.Main : ListsStoryboardID.Lists 
window = UIWindow(frame: UIScreen.mainScreen().bounds) 
window!.rootViewController = UINavigationController(rootViewController: UIStoryboard(name: storyboardID, bundle: nil).instantiateInitialViewController()) 
window!.makeKeyAndVisible() 
+0

Danke für die Antwort, aber das ist nur die Navigation auf dem Login-Bildschirm lädt. Da ich die selbe Methode verwende, um den tableViewController zu laden, wohin ich meine Benutzer leiten sollte, lädt er nicht auch den navigationController. –

+0

Ich habe auch gerade versucht, einen Übergang von der Login-Seite zu einer anderen Seite (die nächste Seite in der üblichen UX), aber hat den Fehler 'receivier ... loginPageViewController .... hat keinen Übergang mit Bezeichner' loginToLocation '"was es tut . –

+0

Sie sollten die Storyboard-ID des View-Controllers verwenden, der in den programmatisch erstellten Nav-Controller eingebunden ist. Es sollte funktionieren –

Verwandte Themen