我創建並開始在我ViewControllers的一個自我重複計時器運行的計時器(姑且稱之爲VC1)有某種影像的幻燈片。當轉換到任何其他VC時,VC1的計時器似乎會繼續運行,因爲其選擇器方法每兩秒打印一次。由於這會干擾定時器從任何其他VC返回到VC1時,我必須在某個時刻刪除它。爲您在任何視圖控制器
這是在控制檯中會發生什麼:(runImages()是定時器的選擇,數量應該顯示,當你看到它的怪異圖像...)
我想一旦我退出VC1,因爲我不救它的任何地方定時器將停止。由於情況並非如此,我想我可能會在離開VC1時刪除定時器。當VC1即將被解僱時,是否有一種方法正在被調用?
另一種方法,我在腦海裏在其他VC的源代碼開始刪除任何計時器。所以,當我輸入VC2時,我想檢查項目中正在運行的任何定時器。有沒有辦法做到這一點,而不要讓計時器成爲所有VC都可以訪問的全局變量?
代碼參考
這是如何創建的定時器:(方法外)
var timer: NSTimer!
然後,在方法我將它設置:
timer = NSTimer.scheduledTimerWithTimeInterval(2, target: self, selector: "runImages:", userInfo: nil, repeats: true)
runImage()
然後增加i
並調用changeImage()
,這會將我的imageView圖像轉換爲第e圖像名稱爲i
。
感謝提前:)
更新
我做定時器的全局變量是每一個VC訪問。該應用程序在VC1中啓動,然後我轉換到VC2。在那裏,我插入了這個代碼:if let t = timer {t.invalidate()}
和if timer.valid {timer.invalidate()}
。現在那不差,定時器的選擇方法保持印刷的東西...
當u退出在viewDidDisappear方法VC1你爲什麼不失效計時器? –
那是我的問題。 – LinusGeffarth
所以你問如何做到這一點? –