仅在第一次显示教程视图

时间:2017-06-07 08:35:55

标签: ios objective-c

我正在尝试创建一个只在第一次打开应用时显示的教程屏幕。我知道我应该使用用户默认值,但如何以及在哪里?在方法viewDidLoad或app delegate类?

3 个答案:

答案 0 :(得分:1)

试试这个

- (BOOL)isAppAlreadyLaunchedOnce {
    BOOL isRememberMe = [[NSUserDefaults standardUserDefaults]boolForKey:@"isAppAlreadyLaunchedOnce"];
    if (isRememberMe) {
        return YES;
    }
    else{
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isAppAlreadyLaunchedOnce"];
        return NO;
    }
}

答案 1 :(得分:1)

存储状态是否在NSUserDefaults中显示教程视图

如果您想在启动时决定是否显示教程视图,请在应用代表 didFinishLaunchingWithOptions

中执行此操作
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"shouldShowTutorial"])

//show tutorial

}
else{

//don't show tutorial

}

第一次显示 Tutorial View 时,在NSUserDefaults中设置了一个标记。

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"shouldShowTutorial"];

答案 2 :(得分:0)

@Maddy已经给出了正确的答案,但让我澄清一下为什么我们不使用 viewDidLoad ? 我们为何使用 didFinishLaunch

简而言之:

<强> viewDidLoad中

系统已经决定在应用程序启动时加载哪个View。默认情况下它是&#34; Main&#34; storyboard的初始视图控制器< /强>

<强> didFinishLaunch

系统已完成显示您应用的所有任务,但尚未决定加载哪个视图。这就是为什么你可以在这里控制首先显示你的教程屏幕。 :)