【发布时间】:2011-10-17 15:14:58
【问题描述】:
我正在为 iphone 构建一个应用程序。
我有两种观点。用户第一次启动应用程序时,我想显示第一个视图,他按下一个按钮并转到第二个视图。
他第二次启动应用程序时,我希望它直接跳转到第二个视图。
你们能指出我正确的方向吗?
【问题讨论】:
标签: iphone objective-c mobile interface views
我正在为 iphone 构建一个应用程序。
我有两种观点。用户第一次启动应用程序时,我想显示第一个视图,他按下一个按钮并转到第二个视图。
他第二次启动应用程序时,我希望它直接跳转到第二个视图。
你们能指出我正确的方向吗?
【问题讨论】:
标签: iphone objective-c mobile interface views
我会为此使用NSUserDefaults
-(BOOL) shouldSkipFirstView
{
//boolForKey returns NO if that entry does not exist or is not associated with a bool
return [[NSUserDeafults standardUserDefaults] boolForKey:@"shouldSkipFirstView"];
}
-(void) skipFirstViewInFuture
{
[[NSUserDeafults standardUserDefaults] setBool:YES forKey:@"shouldSkipFirstView"];
[[NSUserDeafults standardUserDefaults] synchronize]; //optional line
}
-(UIViewController*) getStartupViewController
{
if([self shouldSkipFirstView])
{
[self skipFirstViewInFuture];
return [[[MySecondViewController alloc] init] autorelease];
}
else
{
return [[[MyFirstViewController alloc] init] autorelease];
}
}
【讨论】:
您应该查看 NSUserDefaults。这个概念将在应用程序第一次加载并显示第一个视图时存储一个值作为首选项。然后每次打开您的应用时,检查是否设置了该首选项值,如果设置了,则显示第二个视图。
【讨论】:
创建变量并将其保存到 NSUserDefaults 以便在第一次加载应用程序时将其设置为 true 并显示视图 1 并将其设置为 false。第二次如果为 false 则显示视图 2 并将其设置为 true。
应用程序中的代码确实在应用程序委托中完成启动。
【讨论】:
您只需要某种应用程序已打开的记录。例如,您可以在 NSUserDefaults 中存储一个对象,其中包含应用程序的版本,该版本是在应用程序完成启动时设置的。然后,您可以检查该键是否存在对象,或者记录的版本是否低于应用程序的当前版本(例如,如果您想在每次版本更改时显示它)。
【讨论】: