0

我在 iPhone 应用程序中工作,使用 NSTimer 创建时间计数以在屏幕中设置,例如最初 100,然后像 99、98、97 等那样经过...完成后,用户按确定按钮导航到上一个屏幕,然后再次进入游戏屏幕,在经过的时间从上一个经过的时间开始,如 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];
}
4

1 回答 1

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;
   }
}
于 2012-09-24T05:28:29.627 回答