2012-02-12 50 views

回答

3

1)您的計時器可能不應該由視圖管理,而應該由視圖的控制器管理。定時器本身不是你的用戶界面的固有部分,只有定時器的顯示。 (例如,如果你想讓定時器在刪除視圖後繼續,會發生什麼情況?)

2)任何對象(包含視圖或控制器)都可以獨立地偵聽適當的通知。例如,在您的視圖控制器(或視圖代碼,如果你選擇走這條路):

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(pauseTheTimer:) 
              name:UIApplicationWillResignActiveNotification 
              object:nil]; 

然後實施pauseTheTimer:方法將處理通知。 (由於只有一個UIApplication對象,因此可以使用nil作爲對象,如下所示。)

此方法很好地將您的應用程序委託與視圖和視圖控制器分開。

(哦,別忘了停下觀察,當你的看法被卸載或釋放。如果不這樣做能夠並且將會導致死機。)

+0

這會否選擇自動被調用時willResignActive是因爲發名稱我給它,或者我必須在'applicationWillResignActive'手動發送通知 – Chris 2012-02-12 09:30:02

+0

它會自動發生 - 你可以選擇選擇器(例如pauseTheTimer :),但關鍵部分是通知名稱。在UIApplication.h中查看 - 您會看到一堆名稱與其委託方法重疊的通知。在列表的開頭是評論「//這些通知在等同的委託消息被調用後發出」 – 2012-02-12 09:36:53

+0

完美,謝謝你康拉德! – Chris 2012-02-12 09:38:58

相關問題