0
在xcode中,當我登錄我的NSTimer時,它開始於viewDidAppear
並停止在viewdiddisappear
這很好,但是當我去一個退出segue時,定時器恢復(我不想發生,因爲它變成了雙倍)。我如何正確地阻止它,以便在再次調用時不會翻倍?我在哪裏正確啓動並使NSTimer無效?
..when我把在viewdidload
.sure它不會增加一倍,但因爲我而無效viewDidDisappear
它不會重新開始這裏是我的代碼
-(void)viewDidAppear:(BOOL)animated{
if (self.timeInc.isValid == NO){
self.timeInc = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(updateDetailCounter:) userInfo:([Dateformatter2() dateFromString:_DetailModal[1]]) repeats:YES];
}
}
-(void)viewDidDisappear:(BOOL)animated{
[self.timeInc invalidate];
}
你是什麼意思在**當我去一個退出segue **? –
它去位於導航頁面的根視圖這種開卷命令 - (IBAction爲)unwindToMain:(UIStoryboardSegue *){賽格瑞 } – user3517855
總是調用'super'如果重寫'viewDidAppear:','viewDidDisappear:' ......如果你放鬆一下,那麼控制器應該在計時器被破壞之前銷燬計時器 - 你的控制器是被毀壞還是被人爲地保留?當你說'加倍'時,你的意思是你有額外的計時器運行? – Wain