在显示视图时,我需要重复调用其视图控制器中的函数 - 可能每秒一次。如果用户离开视图(通过在包含的导航控制器中向下或向上移动),计时器应该停止。当他们回到视图时,计时器应该恢复。
我如何实现这一目标?有什么特别需要我考虑的(如果用户切换出应用程序,或接听电话?)
答案 0 :(得分: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");
}
答案 1 :(得分:2)
使用- (void)viewWillAppear:(BOOL)animated
和- (void)viewWillDisappear:(BOOL)animated
设置/重置NSTimer
。
答案 2 :(得分:1)
将您的计时器存储在一个数组中(如果需要,还可以存储其他计时器)。
当你需要停止计时器时使用[theTimer invalidate];
当你需要恢复它时,解析你的阵列计时器并解雇它们
如果用户更改/停止应用程序,它将不会停止当前计时器,它将结束,但其他计时器将不再启动。