我正在尝试创建一个仅在应用程序开放期间显示的教程屏幕。我知道我应该使用用户默认值,但是如何以及在哪里?在方法中,ViewDidload或App委托类?
尝试这个
- (BOOL)isAppAlreadyLaunchedOnce {
BOOL isRememberMe = [[NSUserDefaults standardUserDefaults]boolForKey:@"isAppAlreadyLaunchedOnce"];
if (isRememberMe) {
return YES;
}
else{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isAppAlreadyLaunchedOnce"];
return NO;
}
}
存储状态,无论是否在NSUserDefaults
中显示教程视图。
如果您想在启动时决定显示或不显示教程视图您应该在 App app demegate didFinishLaunchingWithOptions
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"shouldShowTutorial"])
//show tutorial
}
else{
//don't show tutorial
}
第一次显示教程视图在NSUserDefaults
中设置标志。
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"shouldShowTutorial"];
@maddy给出了正确的答案,但让我澄清一下为什么我们不使用 viewDidload ?为什么我们使用 didfinishlaunch
简而言之:
ViewDidload
系统已经决定在应用程序启动时加载哪种视图。默认情况下," main" 故事板的初始视图控制器
didfinishlaunch
系统已完成所有任务以显示您的应用程序,但尚未决定加载哪种视图。这就是为什么您可以在此处控制您的教程屏幕的原因。:(