我正在开发一个 iphone 应用程序,当用户第一次启动应用程序时,它会要求在前两个屏幕中设置用户名等详细信息。一旦用户提供了详细信息,我不希望在启动应用程序时出现这两个屏幕。
我尝试从互联网上获取信息,但我不知道如何找到它。可能是我错过了这样做的技术术语或措辞。任何人都可以帮助完成这个场景。任何示例代码都会非常有帮助。
谢谢你的时间
只需将布尔变量设置为用户默认值。用户默认设置是一种将信息保存到应用程序外部的手机的方法,应用程序可以随时调用该应用程序。
在启动时在您的应用程序委托中,检查用户默认值是否为布尔值。
要将布尔值保存到用户默认值:
NSValue *state = ... //Whatever state you want. NSValue allows for booleans.
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:obj forKey:@"notFirstTimeRun"];
[defaults synchronize];
从用户默认值加载布尔值:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSValue *state = [defaults objectForKey:@"notFirstTimeRun"];
做一个检查:
if ([state boolValue] == true){
//Has ran before, skip your UIViews or whatever
}
else{
//Has not ran before, do your setup or whatever.
}
我会这样做:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasBeenLaunched"]){
// This is not the first time, therefore open app as usual
} else {
// This is the first time, show special views
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasBeenLaunched"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}
在 AppDidFinishLaunching 中设置一个布尔值怎么样。您可以在每次启动应用程序时检查该布尔值,并据此显示或隐藏相应的屏幕。
您要做的基本上是存储一个标志,指示用户是否已完成设置步骤。并且在应用程序启动时,您检查该标志是否存在,并使用相应的值表示是否显示设置屏幕。NSUserDefaults提供了一种非常简单易用的跨会话持久化状态的方法。