应用程序第二次启动时显示不同的视图

Posted

技术标签:

【中文标题】应用程序第二次启动时显示不同的视图【英文标题】:Shows different view the 2nd time the app starts 【发布时间】:2011-10-17 15:14:58 【问题描述】:

我正在为 iphone 构建一个应用程序。

我有两种观点。用户第一次启动应用程序时,我想显示第一个视图,他按下一个按钮并转到第二个视图。

他第二次启动应用程序时,我希望它直接跳转到第二个视图。

你们能指出我正确的方向吗?

【问题讨论】:

【参考方案1】:

我会为此使用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];
    

【讨论】:

【参考方案2】:

您应该查看 NSUserDefaults。这个概念将在应用程序第一次加载并显示第一个视图时存储一个值作为首选项。然后每次打开您的应用时,检查是否设置了该首选项值,如果设置了,则显示第二个视图。

【讨论】:

【参考方案3】:

创建变量并将其保存到 NSUserDefaults 以便在第一次加载应用程序时将其设置为 true 并显示视图 1 并将其设置为 false。第二次如果为 false 则显示视图 2 并将其设置为 true。

应用程序中的代码确实在应用程序委托中完成启动。

【讨论】:

【参考方案4】:

您只需要某种应用程序已打开的记录。例如,您可以在 NSUserDefaults 中存储一个对象,其中包含应用程序的版本,该版本是在应用程序完成启动时设置的。然后,您可以检查该键是否存在对象,或者记录的版本是否低于应用程序的当前版本(例如,如果您想在每次版本更改时显示它)。

【讨论】:

以上是关于应用程序第二次启动时显示不同的视图的主要内容,如果未能解决你的问题,请参考以下文章

Swift 仅在使用导航控制器首次启动时显示视图

Pickerview 在文本字段中第二次单击时显示为空,当我按下完成或取消应用程序崩溃时

UseState 仅在第二次单击时显示

从其他片段启动视频视图片段时显示问题?

在应用启动时显示 ViewController

iOS 4.2 如何在方向改变时显示不同的图像?