2016-04-30 17 views
0

我只想在第一次打開應用程序時顯示屏幕教程。 但問題是,當我第一次導航到我的應用程序,並返回到rootviewcontroller所有時間顯示教程屏幕。我想顯示「菜單」屏幕。第一次打開應用程序將所有時間都變成教程屏幕

我怎麼能設置RootViewController我的MenuViewController後教程屏幕?

謝謝!

我有這樣的代碼在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]; 
+1

'NSUserDefaults'有'setBool:forKey:'和'boolForKey:'你可以用它代替比較字符串的方法' @「NO」' – EmilioPelaez

回答

0

這樣做,

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]; 
+0

謝謝你的支持,但沒有成功。我第一次打開應用程序,當我回來時,我必須回來 [self.navigationController popToRootViewControllerAnimated:YES]; 轉到TutorialScreen,而不是MenuScreen – user3777879

1

集,

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

我在這裏做這樣在我的一個項目,

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

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


[self.window setRootViewController:screen]; 

希望這會有所幫助:)

0
  1. 將NO您Nsuserdefault對象else條件
  2. 與對象不是方法進行比較。 Like take bool isfirsttime =你的NSuserdefault方法。 使用 如果(isfirsttime)

    {} 否則 {}

相關問題