我的问题是关于游戏关卡选择的简单方法。例如:我有两个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];