0

ビューが表示されている間、そのビュー コントローラーで関数を繰り返し (おそらく 1 秒に 1 回) 呼び出す必要があります。ユーザーがビューから離れた場合 (含まれているナビゲーション コントローラーのスタックを上下に移動することによって)、タイマーは停止する必要があります。ビューに戻ると、タイマーが再開されます。

どうすればこれを達成できますか? 特に考慮する必要があることはありますか (ユーザーがアプリから切り替えた場合、または電話に出た場合)。

4

3 に答える 3

3

このコードを試してください:

  NSTimer *timer;

    - (void)viewWillAppear:(BOOL)animated
    {

           timer = [NSTimer scheduledTimerWithInterval: 0.1 target:self selector:@selector(targetMethod:) userInfo:nil repeats: YES];
    }
    - (void)viewWillDisappear:(BOOL)animated
    {

          [timer invalidate];
    }

    -(void) targetMethod: NSTimer * theTimer 
    {
           NSLog(@"Me is here at 1 sec delay");
    }
于 2012-05-14T14:02:50.223 に答える
2

と を使用して- (void)viewWillAppear:(BOOL)animated- (void)viewWillDisappear:(BOOL)animatedを設定/リセットしますNSTimer

于 2012-05-14T13:46:19.160 に答える
1

タイマーを配列(および必要に応じて他のタイマー)に格納します。

タイマーの使用をやめる必要があるとき[theTimer invalidate];

yuが再開する必要がある場合は、配列タイマーを解析して起動します。

ユーザーがアプリを変更/停止した場合、現在のタイマーは停止せず、終了しますが、他のタイマーはそれ以上開始しません。

于 2012-05-14T13:48:22.913 に答える