0

私はiPhoneアプリケーションで作業しています。NSTimerを使用して、最初は100のように画面に設定する時間カウントを作成し、99、98、97などのように経過しました...使用可能な経過時間でゲームを完了した場合、アラートビューが正常に表示されました終了したら、ユーザーは [ok] ボタンを押して前の画面に移動し、再びゲーム画面に移動します。経過時間は、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

.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;
   }
}
于 2012-09-24T05:28:29.627 に答える