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