當顯示視圖時,我需要重複調用視圖控制器中的函數 - 也許每秒鐘調用一次。如果用戶離開視圖(通過向下或向上移動包含導航控制器的堆棧),計時器應該停止。當他們回到視圖時,定時器應該恢復。定時器,而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