【发布时间】:2014-12-03 08:50:27
【问题描述】:
我在谷歌和堆栈交换上四处寻找,但找不到我正在寻找的正确信息。
我正在创建一个游戏。与其拥有用户需要转到的“关于”或“说明”页面来了解如何玩,我希望将说明作为视图控制器出现,用户可以在其中阅读说明并继续玩从那里。虽然我希望这只发生一次!所以用户第二次去玩游戏就直接进入游戏了。
有谁知道这是怎么做的?
提前致谢, 马特
【问题讨论】:
我在谷歌和堆栈交换上四处寻找,但找不到我正在寻找的正确信息。
我正在创建一个游戏。与其拥有用户需要转到的“关于”或“说明”页面来了解如何玩,我希望将说明作为视图控制器出现,用户可以在其中阅读说明并继续玩从那里。虽然我希望这只发生一次!所以用户第二次去玩游戏就直接进入游戏了。
有谁知道这是怎么做的?
提前致谢, 马特
【问题讨论】:
使用 NSUserDefaults,比如
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
{
if ([identifier isEqualToString:@"yourSegueName"])
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if([defaults objectForKey:@"IS_FirstTime"]!=nil)
{
//user came for first time show help screen
[defaults setObject:@"IT'sNotFirstTime" forKey:@"IS_FirstTime"];
[defaults synchronize];
return(true);
}
else
{
//don't show help screen
return(fale);
}
}
else
{
return(true);
}
}
【讨论】:
在您的主视图控制器中,根据您保存在用户默认值中的值来决定是否推送指令视图控制器:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"showInstructions"]
在viewDidLoad,例如:
if([[NSUserDefaults standardUserDefaults] boolForKey:@"showInstructions"]) {
[self performSegueWithIdentifier:@"instructionsSegue"];
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"showInstructions"];
}
【讨论】: