2012-03-30 60 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]; 
相关问题