我很感興趣其他開發者如何在AppDelegate和ViewController之間畫線。我想知道別人如何處理它,而不僅僅是我的具體情況。例如,將不勝感激。AppDelegate和ViewController之間的界線
我已經達到了在ViewController中需要AppDelegate通知的地步。在我的情況下,當前的ViewController需要知道應用何時停用或終止。
在此先感謝
我很感興趣其他開發者如何在AppDelegate和ViewController之間畫線。我想知道別人如何處理它,而不僅僅是我的具體情況。例如,將不勝感激。AppDelegate和ViewController之間的界線
我已經達到了在ViewController中需要AppDelegate通知的地步。在我的情況下,當前的ViewController需要知道應用何時停用或終止。
在此先感謝
視圖控制器管理一組視圖(或現在可能是一組其他視圖控制器也)。任何超出管理視圖領域的東西都不屬於視圖控制器。我們中的許多人通過在視圖控制器中添加簡單UITableViewDelegates
和UITableViewDataSources
來彎曲此規則;或其他類似的代碼。
AppDelegate是整個應用程序的代表。它應該處理應用程序級別的事件。當您的應用程序獲得後臺支持時,您可能需要爲整個應用程序處理的數據保存狀態。
UIViewController
需要AppDelegate接收和處理的事件通知沒有任何問題。應用程序委託應該具有廣泛的應用需求,但視圖控制器可能有特定的需求。只需帶上您的視圖控制器並註冊您想要的事件(應用程序委託人是否也處理完全相同的事件並不重要),然後執行您需要執行的任何操作以正確管理您的視圖。
我避免使用App委託一切可能。將它用作一種全球變量柺杖太容易,導致設計不佳。你的具體情況,你可以訪問你的應用程序(通過NSNotificationCenter)任何地方的通知,而無需使用App代表:
NSNotificationCenter* defaultCenter = [NSNotificationCenter defaultCenter];
[defaultCenter addObserver:self
selector:@selector(applicationWillResignActive:)
name:UIApplicationWillResignActiveNotification
object:nil];