我正在开发一个有两个故事板的应用程序:一个用于我的应用程序的入门控制器,另一个用于我的主应用程序。我的onboarding视图控制器有一个跳过按钮,按下时按钮将用户引导到主故事板。只要用户没有点击跳过按钮,我只想显示入职视图。一旦跳过按钮,相应的故事板就会永远消失。
我以为我可以通过在首次打开应用时显示入职故事板来解决这个问题,我发现一些在线的代码看起来很有帮助,但它不起作用......这里的代码是在我的应用程序AppDelegate中:
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
}
}
请注意我的代码" Main"是入职故事板,而"功能"是我的主要应用代码。
但是,由于我的同样问题仍然存在,因此此代码无法正常工作。如果有人可以查看我的代码,看看我做错了什么,那将非常感激。
提前致谢!
答案 0 :(得分:1)
您永远不会写入NSUser默认值。所以它会保持零..
你错过了这样的一句话:
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setValue("Did watch", forKey: "userAsLoggedInBefore")
将它放在if - else语句
的末尾