我已经为iOS编程了几个月,想要用新功能完成我的游戏。现在,当人们玩游戏并输掉游戏时,他们会看到“游戏结束”视图。
现在我想要的是人们首先看到一个视图,他们可以使用他们获得的已购买的积分,并使用extra seconds or life
返回游戏。但我不是以正确的方式做到这一点。
方式我尝试做:
- Save Me View (Segue)
Game view -
- Game Over View (Segue)
所以,你输了,自动进入save me
视图,按下关闭并立即转到game over
。否则,请在显示Save Me
视图之前使用已保存的NSUserDefaults。
所以我使用NSUserDefaults来保存以前的游戏关卡/积分等,这不是正确的做法,而且流程变得复杂。
第二次尝试: 我已经尝试过,但我最后一步陷入困境。因为我正在使用Segue和委托,我不知道如何让我的GameView成为SaveView的代表,而协议已经在那里..我已经遵循了这个:Passing Data between View Controllers
现在在第6步,它不起作用,因为我正在使用模态segue与我的UIViewControllers和没有UINavigationControllers。我在我的代码atm中有这个:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([[segue identifier] isEqualToString:@"SaveMe"]){
SaveMeViewController *vc = [segue destinationViewController];
// Here needs to come that GameView (This Class) is the delegate for SaveMeViewController. Tried vc.delegate = self; but this doesn't work.
[self savePoints];
}
}
答案 0 :(得分:1)
您可以在给定视图中设置委托,传递游戏结束的方式。
答案 1 :(得分:-1)
正如我的理解使用@property或委托传递数据一样,它会对你有帮助。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"SaveMe"]) {
SaveMeViewController * vc = segue.destinationViewController;
// create property in SaveMeViewController and access that property and pass values
vc.property = value to assgin;
}
}