2016-03-28 9 views
-1

Ich habe derzeit eine Quiz-Spiel-App, wo jede Runde von einem anderen View-Controller dargestellt wird. Wenn der Benutzer die App schließt und die App später erneut öffnet, möchte ich, dass sie die gleiche Punktzahl behält und auf dem gleichen Viewcontroller bleibt, an dem sie zuletzt war. Ich glaube, NSUserDefaults ist der Weg zu gehen, aber nicht sicher, wie es eingerichtet wird, um sich an die letzte Runde zu erinnern, in der es war. Jede Hilfe wird geschätzt!Wie öffne ich App basierend auf dem letzten in Swift verwendeten ViewController?

Antwort

1

Sie können ein Benutzereinstellungen erstellen Objekt mit:

// Create an object reference to the NSUserDefaults class 
let defaults = NSUserDefaults.standardUserDefaults() 

Sie können Objekte für diese NSUserDefaults Klasse anfordern und eingestellt, die beim Schließen und Öffnen der App persistent sein.

// Set a string for a key 
defaults.setObject("a string", forKey: "myVar") 

// Request the object associated with the key: 
let myVar : String = defaults.stringForKey("myVar") 

Sie können den Wert für das Objekt speichern und aktualisieren, wenn Sie wie das Speichern spüren. Wenn Sie die Storyboard-ID des View-Controller speichern möchten Sie präsentieren beim Starten der App können Sie es wieder öffnen, wenn die App erscheint:

// Create a reference to the Storyboard file 
let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 

// Create a reference to the ViewController you want to open 
let vc : UIViewController = storyboard.instantiateViewControllerWithIdentifier("ID FROM NSUserDefaults") 

// Present the ViewController 
dispatch_async(dispatch_get_main_queue(), { 
    self.presentViewController(vc, animated: true, completion: nil) 
}) 
+0

Das ist gut, aber wo würde ich das Teil setzen, wenn es das gespeicherte präsentiert viewcontroller, in der ViewDidLoad? – SwiftyJD

+0

@SwiftyJD in Ihrem 'AppDelegate' – kye