iPhone - 一次性设置屏幕 [重复]
Posted
技术标签:
【中文标题】iPhone - 一次性设置屏幕 [重复]【英文标题】:IPhone - One time setup screen [duplicate] 【发布时间】:2013-10-25 00:21:49 【问题描述】:我正在开发一个 iphone 应用程序,当用户第一次启动应用程序时,它会要求在前两个屏幕中设置用户名等详细信息。一旦用户提供了详细信息,我不希望在启动应用程序时出现这两个屏幕。
我尝试从互联网上获取信息,但我不知道如何找到它。可能是我错过了这样做的技术术语或措辞。任何人都可以帮助完成这个场景。任何示例代码都会很有帮助。
感谢您的宝贵时间
【问题讨论】:
我想这基本上就是你要问的:***.com/questions/308832/… 【参考方案1】:只需将布尔变量设置为用户默认值。用户默认设置是一种将信息保存到应用程序外部的手机的方法,应用程序可以随时调用该应用程序。
在您的应用程序代理启动时,检查用户默认值是否为布尔值。
将布尔值保存到用户默认值:
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.
【讨论】:
这确实是最好的方法,但是如果用户从手机中删除了应用程序,他/她将不得不再次完成设置过程。如果设置信息链接到远程服务器上的帐户,这可能看起来有点多余,但在其他方面是有意义的。【参考方案2】:您要做的基本上是存储一个标志,指示用户是否已完成设置步骤。并且在应用程序启动时,您检查该标志是否存在,并带有相应的值来表示是否显示设置屏幕。 NSUserDefaults 提供了一种非常简单易用的跨会话持久化状态的方法。
【讨论】:
【参考方案3】:如何在 AppDidFinishLaunching 中设置一个布尔值。您可以在每次启动应用程序时检查该布尔值,并据此显示或隐藏相应的屏幕。
【讨论】:
【参考方案4】:我会这样做:
- (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];
【讨论】:
以上是关于iPhone - 一次性设置屏幕 [重复]的主要内容,如果未能解决你的问题,请参考以下文章