2016-07-30 6 views
-1

Ich arbeite an einer App mit zwei Storyboards: Eines für die Onboarding-Controller meiner App und das andere für meine Hauptanwendung. Mein Onboarding-View-Controller verfügt über einen Skip-Button, der beim Drücken den Benutzer zum Haupt-Storyboard führt. Ich möchte nur die Onboarding-Ansicht anzeigen, solange der Benutzer nicht auf die Überspringen-Schaltfläche geklickt hat. Sobald der Skip-Button gedrückt wird, sollte das entsprechende Storyboard für immer verschwinden.Wie verberge ich ein Storyboard/ViewControllers für immer?

Ich dachte, ich könnte dieses Problem beheben, indem ich Onboarding Storyboard nur zeigen, wenn die App geöffnet wird, und ich fand einige Code online, die hilfreich schien, aber es funktioniert nicht ... hier ist der Code, der ist AppDelegate meine App:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    // Override point for customization after application launch. 

    FIRApp.configure() 
    Fabric.with([Crashlytics.self]) 

    let defaults = NSUserDefaults.standardUserDefaults() 
    if (defaults.objectForKey("userAsLoggedInBefore") != nil) { 

     print("Functions") 

     //here you insert the code to go to the main screen 
     var mainView: UIStoryboard! 
     mainView = UIStoryboard(name: "Functions", bundle: nil) 
     let viewcontroller : UIViewController = mainView.instantiateViewControllerWithIdentifier("functions") as UIViewController 
     self.window!.rootViewController = viewcontroller 

    } else { 

     //this means the user hasn't logged in before and you can redirect him to the onboarding page 
     print("Onboarding") 

     var mainView: UIStoryboard! 
     mainView = UIStoryboard(name: "Main", bundle: nil) 
     let viewcontroller : UIViewController = mainView.instantiateViewControllerWithIdentifier("onboarding") as UIViewController 
     self.window!.rootViewController = viewcontroller 

    } 
} 

Hinweis in meinem Code "Main" ist die Onboarding-Storyboard, während "Funktionen" mein Haupt-App-Code ist.

Allerdings funktioniert dieser Code nicht wie beabsichtigt, da mein Problem immer noch auftritt. Wenn jemand meinen Code ansehen und sehen könnte, ob ich etwas falsch mache, würde das sehr geschätzt werden.

Vielen Dank im Voraus!

Antwort

1

Sie schreiben niemals in NSUser-Standardeinstellungen. So wird es bleiben null ..

Sie einige Zeilen wie diese fehlen:

let defaults = NSUserDefaults.standardUserDefaults() 
    defaults.setValue("Did watch", forKey: "userAsLoggedInBefore") 

es Setzen Sie am Ende der if - else-Anweisung

+0

Vielen Dank Mann! –

Verwandte Themen