简体   繁体   English

首次打开的应用程序所有时间都转到教程屏幕

[英]First time open app turns all time to tutorial screen

I want to show a screen tutorial only first time you open the app. 我只想在您第一次打开应用程序时显示一个屏幕教程。 But the problem is when i navigate to my app first time and go back to rootviewcontroller all time shows tutorial screen. 但是问题是,当我第一次导航到我的应用程序并一直返回到rootviewcontroller时,始终显示教程屏幕。 And i want to show "Menu" screen. 而且我想显示“菜单”屏幕。

How could i set like RootViewController my MenuViewController after tutorial screen? 教程屏幕显示后如何设置RootViewController我的MenuViewController?

Thank you! 谢谢!

I have this code in appdelegate.m : 我在appdelegate.m中有以下代码:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if ([[[NSUserDefaults standardUserDefaults] valueForKey:@"ISFIRSTTIME"] isEqualToString:@"NO"]) {
    controller = [[MenuViewController alloc] initWithNibName:@"MenuViewController" bundle:nil];
}
else {
    controller = [[TutorialViewController alloc] initWithNibName:@"TutorialViewController" bundle:nil];
}
_navController = [[UINavigationController alloc] initWithRootViewController:controller];
[self.window setRootViewController:_navController];

[self.window makeKeyAndVisible];

set in else condition, 设置在其他条件下

[[NSUserDefaults standardUserDefaults]setValue:@"NO" forKey:@"ISFIRSTTIME"];
[[NSUserDefaults standardUserDefaults] synchronize];

Here I am doing like this in my one project, 在这里,我在一个项目中就是这样

NSString *identifier;
BOOL isSaved = [[NSUserDefaults standardUserDefaults] boolForKey:@"loginSaved"];
if (isSaved)
{
    identifier=@"home1";

}
else
{
    identifier=@"dis1";
}
UIStoryboard *    storyboardobj=[UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *screen = [storyboardobj instantiateViewControllerWithIdentifier:identifier];


[self.window setRootViewController:screen];

hope this will help :) 希望这会有所帮助:)

Do something like, 做类似的事情,

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if ([[[NSUserDefaults standardUserDefaults] valueForKey:@"ISFIRSTTIME"] isEqualToString:@"NO"]) {
    controller = [[MenuViewController alloc] initWithNibName:@"MenuViewController" bundle:nil];
}
else {
    controller = [[TutorialViewController alloc] initWithNibName:@"TutorialViewController" bundle:nil];
}
_navController = [[UINavigationController alloc] initWithRootViewController:controller];
[self.window setRootViewController:_navController];

[self.window makeKeyAndVisible];

//Setting "ISFIRSTTIME" to "NO" : it will be "NO" after first time you open the app

[[NSUserDefaults standardUserDefaults]setValue:@"NO" forKey:@"ISFIRSTTIME"];
[[NSUserDefaults standardUserDefaults] synchronize];
  1. Set the NO to your Nsuserdefault object in else condition 在其他情况下将NO设置为您的Nsuserdefault对象
  2. Compare it with the object not the method. 与对象而不是方法进行比较。 Like take bool isfirsttime = your NSuserdefault method. 就像take bool isfirsttime =您的NSuserdefault方法。 Use if (isfirsttime) 使用(第一次)

    {} Else {} {}其他{}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM