ビューが表示されている間、そのビュー コントローラーで関数を繰り返し (おそらく 1 秒に 1 回) 呼び出す必要があります。ユーザーがビューから離れた場合 (含まれているナビゲーション コントローラーのスタックを上下に移動することによって)、タイマーは停止する必要があります。ビューに戻ると、タイマーが再開されます。
どうすればこれを達成できますか? 特に考慮する必要があることはありますか (ユーザーがアプリから切り替えた場合、または電話に出た場合)。
ビューが表示されている間、そのビュー コントローラーで関数を繰り返し (おそらく 1 秒に 1 回) 呼び出す必要があります。ユーザーがビューから離れた場合 (含まれているナビゲーション コントローラーのスタックを上下に移動することによって)、タイマーは停止する必要があります。ビューに戻ると、タイマーが再開されます。
どうすればこれを達成できますか? 特に考慮する必要があることはありますか (ユーザーがアプリから切り替えた場合、または電話に出た場合)。
このコードを試してください:
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");
}
と を使用して- (void)viewWillAppear:(BOOL)animated
、- (void)viewWillDisappear:(BOOL)animated
を設定/リセットしますNSTimer
。
タイマーを配列(および必要に応じて他のタイマー)に格納します。
タイマーの使用をやめる必要があるとき[theTimer invalidate];
yuが再開する必要がある場合は、配列タイマーを解析して起動します。
ユーザーがアプリを変更/停止した場合、現在のタイマーは停止せず、終了しますが、他のタイマーはそれ以上開始しません。