2012-06-28 60 views
0

我有這將在viewDidLoad中被初始化,並在viewDidUnload發佈一個計時器,但我發現viewDidUnload nerver被調用,每次視圖被呈現給用戶的viewDidLoad中被調用,所以我同時運行多個計時器..這不是我想要的。我應該什麼時候解僱計時器?

我只是想阻止&發佈時用戶導航到該視圖離開計時器,我該怎麼辦呢?

回答

4

請勿初始化它視圖做負載,而不是將其初始化鑑於將衝擊片雷管,並停止在視圖將dissapear,這樣當您離開它會停止和重新啓動,一旦你回來了這一觀點。

我有你有完全相同的問題。這是代碼,以防萬一你需要它:

- (void)viewWillAppear:(BOOL)animated{ 
[super viewWillAppear:animated]; 
NSLog(@"View will appear"); 
myTimer = [NSTimer timerWithTimeInterval:5.0 target:self selector:@selector(pageCycler) userInfo:nil repeats:YES]; 
[[NSRunLoop mainRunLoop] addTimer: myTimer forMode: NSDefaultRunLoopMode]; 
} 

- (void)viewWillDisappear:(BOOL)animated { 
[super viewWillDisappear:animated]; 
NSLog(@"View will dissapear"); 
[myTimer invalidate]; 
myTimer=nil; 
} 
+1

基督徒答案正確viewwilldisapper是無效的定時器和setMyTimer = nil在viewdidunload正確的地方。 –

+0

感謝@Pandey_Laxman,我忘了放行:m​​yTimer = nil; – Christian

相關問題