2013-06-22 30 views

回答

0

1)在你的RootViewController的.h文件中,

+ (RootViewController *) sharedStore; 

2)在你的RootViewController的.m文件,

+ (RootViewController *) sharedStore 
{ 
    static RootViewController *myStore = nil; 

    if (!myStore) { 
     myStore = [[RootViewController alloc] init]; 
    } 
    return myStore; 
} 

3)轉到您AppDelegate.m文件並導入RootViewController的

#import RootViewController.h 

4)在您的AppDelegate.m文件中,轉到ApplicationDidEnterBackground方法並鍵入:

[[RootViewController sharedStore] saveChanges]; 

5)在RootViewController中實現saveChanges方法。

+0

心不是店裏被設置爲零每次調用此方法? –

+0

它是一個靜態變量,它在對象的生命週期中不會被分配超過一次 – Tim

+0

那麼,只要到達並且不是第一次,該行就會被忽略? –

3

在您的根視圖控制器中註冊以接收ApplicationWillEnterBackground通知。然後,根視圖控制器可以在收到此通知時執行保存。

你最初的本能,以減少控制器之間的耦合是一個很好的。

0

AJ112的回答讓:

  • UIViewController單身,這是不是一個好的做法。
  • 創建耦合與您的UIApplication,這是儘可能避免的東西。

有一些UIApplication通知,你可以從你需要處理多任務處理任何類觀察。檢查答案在這太問題:

iphone 4 sdk : detect return from background mode

您可以查看所有通知是UIApplication帖子在這裏:

http://developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006728-CH3-DontLinkElementID_4

相關問題