我的问题涉及一种简单的游戏关卡选择方式。例如:我有两个ViewControllers
。在一个ViewController
我编写了一个游戏代码。如果我实现了游戏目标,我将显示一个隐藏按钮(UIButton.hidden = NO
),它将我与其他ViewController
链接到下一级别。到现在为止还挺好。
但我希望保存这个状态,所以当我再次关闭并打开应用程序时,这个隐藏的按钮应该仍然可用,因为我已经达到了这个级别的目标。
我尝试使用NSUserDefaults
,但我无法弄清楚如何保存布尔值。如何为按钮触发保存if/else
状态?
不确定我是否遗漏了什么,但听起来相当简单:
[[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];