- (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;
}
我在上面的app delegate中使用以下代码仅在第一次启动时显示Launchviewcontroller,但由于某种原因它无法正常工作!
答案 0 :(得分:0)
对于我要做的事情,我将首先从菜单中选择iOS模拟器来重置模拟器。然后,选择重置内容和设置。它将清除所有 NSUserDefaults 数据。因此,我可以更多地了解问题所在。
- application: didFinishLaunchingWithOptions:
方法仅在您启动时调用。这意味着当您从背景转移到前景时,它不会被调用。
我想你可能需要了解这个过程。希望这会有所帮助。
答案 1 :(得分:-1)
我不确定,但有时我不能将Bool值添加到NSUserDefaults,让我们试试NSString(考试:HasLaunchedOnce = @" 0" / @" 1")