2011-08-26 16 views
2

我正在为iPhone做一个基于视图的测验应用程序,玩家在回答问题时会在三个不同视图之间随机选择。他们在正确答案时得到+1,在错误答案时得到-1。但在回答这个问题后,当你进入新的随机视图时,我需要UILabel来显示前一个视图的分数。我怎么做?在随机视图之间保留UILabel值

这里是我的代码:

ViewController.h

@interface ViewController : UIViewController { 

    IBOutlet UILabel *labelQuestion; 
IBOutlet UILabel *labelAnswer1; 
IBOutlet UILabel *labelAnswer2; 
IBOutlet UILabel *labelAnswer3; 
IBOutlet UILabel *labelScore; 

int score;  

}

@property (nonatomic, retain) IBOutlet UILabel *labelScore; 
@property (nonatomic) int score; 


ViewController.m 

@synthesize labelScore; 
@synthesize score; 

-(IBAction)CorrectAnswer; { 

    score = score +1; 
    labelScore.text = [NSString stringWithFormat:@"%i", score]; 

} 

-(IBAction)WrongAnswer; { 

    score = score -1; 
    labelScore.text = [NSString stringWithFormat:@"%i", score]; 

} 
+0

您是否想要在应用程序启动之间保持分数,或仅在应用程序运行时保持分数? –

+0

只是当应用程序正在运行。 – Mattias

+0

你如何解决这个问题?我期待着您的回音。 – Mattias

回答

1

充分利用可变的分数全球即在AppDelegate定义这一点,你可以在你的应用程序访问。

+0

对不起,你是怎么做的? – Mattias

+0

http://ykyuen.wordpress.com/2010/04/04/iphone-accessing-the-global-variables-in-the-appdelegate/ –

+0

首先,我们在AppDelegate中定义我们的变量。然后,我们想要访问该变量的类首先创建一个AppDelegate实例,然后通过该实例访问我们的变量。该变量将在整个应用程序中保留它的价值。 –

1

最快的,但肮脏的方法是将其存储在应用程序委托..如果你希望它应用程序启动之间的持续,将其存储在用户的默认值.. 但正如我所说,这是肮脏的..

+1

你是如何做到这一点的? – Mattias

1

因为它们是属性,所以当您创建下一个视图时,您可以将标签的文本设置为当前视图的文本以及当前视图的分数。