2011-04-19 193 views
1

我意识到还有其他像这样的话题,但没有一个真的有帮助。我试图从一个视图变量到另一个视图,但我完全不知道如何。从一个视图获取变量到另一个视图

为了给出一些背景故事,我的游戏是一个水果忍者游戏,其中的东西在屏幕上,你必须切片。如果3个精灵离开屏幕未切割,则游戏结束,并通过按钮返回到查看屏幕上的游戏。此外,这应该去“flipSideView”,这是高分,但我的flipSideView转换的实施不起作用。这不是主要问题,主要问题是我不知道如何从mainView(将其存储为int)中的游戏中获得分数到flipSideView(其中包含玩家名称)。

穿过剔方法这一条件(其执行定期检查和方法,用于游戏)

if (lifeCounter < 1) 
{ 
     gameIsOver = YES; 
     [self showInfo:0]; 
     [self viewGameOverScreen]; 
} 

即转到gameOverView,这将坐在那里,直到重放按钮的主视图改变为gameOverView被按下:

- (IBAction)replayAction:(id)sender 
{ 
     [self.delegate gameOverViewControllerDidFinish: self]; 
} 

gameOverViewControllerDidFinish重新启动游戏并关闭视图。

- (void) gameOverViewControllerDidFinish: (GameOverViewController *) controller 
{ 
     [self restart]; 
     [self dismissModalViewControllerAnimated: YES]; 
} 

重新启动方法刚刚重置主视图(分数,级别,生命)中的3个主要值。

当游戏重新启动时,游戏应该将得分和任何名称存储在flipSideView的文本字段中(可以在任何时候玩游戏时查看)并以某种方式存储以供将来参考。它不应该存储在一个文件中,因为这是下周的任务。

由于抄袭问题,我不想发布整个程序,但如果有其他部分可能会使它更容易理解,我一定会发布它们。

由于提前, 基督教

回答

1
NSUserDefaults *currentScore = [NSUserDefaults standardUserDefaults]; 
[currentDefaults setFloat:yourScoreVariable forKey:@"HighScore"]; 
[currentDefaults synchronize]; 

上面存储了比分。 下面检索得分。

CGFloat fltHighScore; 
NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults]; 
fltHighScore = [currentDefaults floatForKey:@"HighScore"]; 
0

您可以为此使用您的应用程序委托。您需要在那里声明您的变量,然后您可以在整个应用程序中通过以下方式访问它:

TestAppDelegate * appDelegate =(TestAppDelegate *)[[UIApplication sharedApplication] delegate]; NSString * string = [appDelegate.Placemarks objectForKey:appDelegate.title];

不知道这是不是最好的方法...

好运吧!

1

建议:

你可以把该变量在控制器类,他们都可以访问。

在控制器中拥有可共享的数据总是更好,然后查看是否必须在视图之间共享数据。

通过委托方法更新可共享数据。

相关问题