viewController正在显示的计时器?

时间:2012-05-14 13:44:10

标签: iphone objective-c

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

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

3 个答案:

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

当你需要恢复它时,解析你的阵列计时器并解雇它们

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