2

我正在开发一个 iphone 应用程序,当用户第一次启动应用程序时,它会要求在前两个屏幕中设置用户名等详细信息。一旦用户提供了详细信息,我不希望在启动应用程序时出现这两个屏幕。

我尝试从互联网上获取信息,但我不知道如何找到它。可能是我错过了这样做的技术术语或措辞。任何人都可以帮助完成这个场景。任何示例代码都会非常有帮助。

谢谢你的时间

4

4 回答 4

2

只需将布尔变量设置为用户默认值。用户默认设置是一种将信息保存到应用程序外部的手机的方法,应用程序可以随时调用该应用程序。

在启动时在您的应用程序委托中,检查用户默认值是否为布尔值。

要将布尔值保存到用户默认值:

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.
}
于 2013-10-25T00:34:05.020 回答
0

我会这样做:

- (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];
    }
}
于 2013-10-25T00:31:51.623 回答
0

在 AppDidFinishLaunching 中设置一个布尔值怎么样。您可以在每次启动应用程序时检查该布尔值,并据此显示或隐藏相应的屏幕。

于 2013-10-25T00:32:22.530 回答
0

您要做的基本上是存储一个标志,指示用户是否已完成设置步骤。并且在应用程序启动时,您检查该标志是否存在,并使用相应的值表示是否显示设置屏幕。NSUserDefaults提供了一种非常简单易用的跨会话持久化状态的方法。

于 2013-10-25T00:29:14.130 回答