当显示视图时,我需要重复调用视图控制器中的函数 - 也许每秒钟调用一次。如果用户离开视图(通过向下或向上移动包含导航控制器的堆栈),计时器应该停止。当他们回到视图时,定时器应该恢复。定时器,而viewController显示?
我该如何做到这一点?有什么特别的我需要考虑(如果用户切换出应用程序,或接听电话?)
当显示视图时,我需要重复调用视图控制器中的函数 - 也许每秒钟调用一次。如果用户离开视图(通过向下或向上移动包含导航控制器的堆栈),计时器应该停止。当他们回到视图时,定时器应该恢复。定时器,而viewController显示?
我该如何做到这一点?有什么特别的我需要考虑(如果用户切换出应用程序,或接听电话?)
使用- (void)viewWillAppear:(BOOL)animated
和- (void)viewWillDisappear:(BOOL)animated
设置/重置您的NSTimer
。
将您的计时器存储在一个数组(和其他计时器,如果需要)。
的时候,于需要停止计时器使用[theTimer invalidate];
当玉要恢复它,解析您的阵列定时器和消防它/它们
如果用户改变/停止的应用程序,它会不会停止当前的计时器,它会结束,但其他计时器不会再启动。
试试这个代码:
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");
}
尼斯的NSTimer这些方法是什么我一直在寻找,谢谢。 – Oliver