2012-03-30 59 views
0

我很感興趣其他開發者如何在AppDelegate和ViewController之間畫線。我想知道別人如何處理它,而不僅僅是我的具體情況。例如,將不勝感激。AppDelegate和ViewController之間的界線

我已經達到了在ViewController中需要AppDelegate通知的地步。在我的情況下,當前的ViewController需要知道應用何時停用或終止。

在此先感謝

回答

1

視圖控制器管理一組視圖(或現在可能是一組其他視圖控制器也)。任何超出管理視圖領域的東西都不屬於視圖控制器。我們中的許多人通過在視圖控制器中添加簡單UITableViewDelegatesUITableViewDataSources來彎曲此規則;或其他類似的代碼。

AppDelegate是整個應用程序的代表。它應該處理應用程序級別的事件。當您的應用程序獲得後臺支持時,您可能需要爲整個應用程序處理的數據保存狀態。

UIViewController需要AppDelegate接收和處理的事件通知沒有任何問題。應用程序委託應該具有廣泛的應用需求,但視圖控制器可能有特定的需求。只需帶上您的視圖控制器並註冊您想要的事件(應用程序委託人是否也處理完全相同的事件並不重要),然後執行您需要執行的任何操作以正確管理您的視圖。

2

我避免使用App委託一切可能。將它用作一種全球變量柺杖太容易,導致設計不佳。你的具體情況,你可以訪問你的應用程序(通過NSNotificationCenter)任何地方的通知,而無需使用App代表:

NSNotificationCenter* defaultCenter = [NSNotificationCenter defaultCenter]; 
[defaultCenter addObserver:self 
        selector:@selector(applicationWillResignActive:) 
         name:UIApplicationWillResignActiveNotification 
        object:nil]; 
相關問題