如何保存布尔值以隐藏或显示按钮?

时间:2013-01-03 17:25:02

标签: objective-c state game-development

我的问题涉及一种简单的游戏关卡选择方式。 例如:我有两个ViewControllers。在一个ViewController我编写了一个游戏代码。如果我达到了游戏目标,我会显示一个隐藏按钮(UIButton.hidden = NO),该按钮将我链接到下一级别的ViewController。到目前为止一切都很好。

但是我希望保存这个状态,所以当我再次关闭并打开应用程序时,这个隐藏的按钮应该仍然可用,因为我已经达到了这个级别的目标。

我尝试使用NSUserDefaults,但我无法弄清楚如何保存布尔值。如何为按钮触发器保存if/else状态?

1 个答案:

答案 0 :(得分:0)

不确定我是否遗漏了某些内容,但听起来相当简单:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"buttonVisible"];
BOOL buttonVisible = [[NSUserDefaults standardUserDefaults] boolForKey:@"buttonVisible"];

关于以下讨论。通知模式看起来像这样: 在viewController中实现了必要的目标:

[[NSNotificationCenter defaultCenter] postNotificationName:@"nextLevelGoalAchieved" object:nil];

在viewController中,您需要了解更改:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(makeLevelButtonVisible) name:@"nextLevelGoalAchieved" object:nil];