仅在首次启动时显示教程屏幕

Showing Tutorial Screen only on first launch

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"])
    {
        MenuViewController *menu=[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"home"];
        MainNavigationController *navController=[[MainNavigationController alloc]initWithRootViewController:menu];
        self.window.rootViewController=navController;
    }
    else
    {
        LaunchViewController *vc=[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"tutorial"];
        self.window.rootViewController=vc;
        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

    return YES;
}

我在上面的应用程序委托中使用以下代码仅在第一次启动时显示 Launchviewcontroller,但由于某种原因它不起作用!

我不确定,但有时我无法将 Bool 值添加到 NSUserDefaults,让我们尝试使用 NSString(示例:HasLaunchedOnce = @"0"/@"1")

对于我要做的,我将首先从菜单中选择 iOS 模拟器来重置模拟器。然后,选择重置内容和设置。它将清除所有 NSUserDefaults 数据。因此,我可以更清楚地知道问题是什么。

- application: didFinishLaunchingWithOptions: 方法只会在您启动时调用。这意味着当你只是从后台过渡到前台时,它不会被调用。

我想你可能需要了解这个过程。希望这对您有所帮助。