我在iPhone应用程序中工作,使用NSTimer创建时间计数在屏幕上设置,如最初100,然后过去像99,98,97等...如果我已完成游戏可用的经过时间,那么我显示AlertView就像成功完成,用户按下确定按钮导航到上一个屏幕,然后再次进入游戏画面,当时经过时间开始时间与之前经过的时间如66,65,64等...我想,当用户去游戏画面再次以100开始计时,如何解决这个问题?,请帮帮我
先谢谢
我试过了:
- (void)viewDidLoad
{
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(elapsedTime) userInfo:nil repeats:YES];
}
-(void)elapsedTime
{
static int i = 100;
NSLog(@"i:%d",i);
lbl.text = [NSString stringWithFormat:@"%d",i];
i--;
if(i<0)
{
[timer invalidate];
timer = nil;
}
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
[timer invalidate];
timer = nil;
[self.navigationController popViewControllerAnimated:YES];
}
答案 0 :(得分:2)
将 int i 定义为.h文件中的类变量
- (void)viewDidLoad
{
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(elapsedTime) userInfo:nil repeats:YES];
i = 100;
}
-(void)elapsedTime
{
i--;
if(i<0)
{
//show alertView here
[timer invalidate];
timer = nil;
}
}