我在 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];
}
最佳答案
在.h文件中定义int i为类变量
- (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;
}
}
关于iphone - 如何在 iPhone 中重置倒计时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12559267/