2012-05-14 36 views
0

当显示视图时,我需要重复调​​用视图控制器中的函数 - 也许每秒钟调用一次。如果用户离开视图(通过向下或向上移动包含导航控制器的堆栈),计时器应该停止。当他们回到视图时,定时器应该恢复。定时器,而viewController显示?

我该如何做到这一点?有什么特别的我需要考虑(如果用户切换出应用程序,或接听电话?)

回答

2

使用- (void)viewWillAppear:(BOOL)animated- (void)viewWillDisappear:(BOOL)animated设置/重置您的NSTimer

+0

尼斯的NSTimer这些方法是什么我一直在寻找,谢谢。 – Oliver

1

将您的计时器存储在一个数组(和其他计时器,如果需要)。

的时候,于需要停止计时器使用[theTimer invalidate];

当玉要恢复它,解析您的阵列定时器和消防它/它们

如果用户改变/停止的应用程序,它会不会停止当前的计时器,它会结束,但其他计时器不会再启动。

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"); 
    }