2012-05-14 43 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"); 
    }