0

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

我如何实现这一目标?有什么特别需要考虑的(如果用户退出应用程序或接听电话?)

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];

当您需要恢复它时,解析您的数组计时器并触发它/它们

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

于 2012-05-14T13:48:22.913 回答