UIViewController可见的callback

我正在开发一个iOS应用程序,当我有Internet连接和其他的时候需要做一些东西,当我没有。 如果我没有在某个时候,我会显示一条消息给用户给我互联网和回来。 问题是如何检测以下情况:

  • 用户按两次主页button,进入多任务处理,设置并连接到互联网
  • 用户回来多任务到我的应用程序,但不按任何东西

我知道我会得到AppDelegatecallback:

- (void)applicationDidEnterBackground:(UIApplication *)application - (void) applicationDidBecomeActive:(UIApplication *)application 

但代码(它不是由我开始)这是非常大的,我不想处理那里的UIViewController需要,如果有任何替代。

我的UIViewController的 – (无效)viewDidAppear:(布尔)animation,当用户回来时不会调用它。

截图

这个断点不是肯定的!

任何有用的想法,除了在AppDelegate?

您可以使用通知中心来侦听视图控制器中的applicationDidEnterBackground

 [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(handleEnteredBackground:) name: UIApplicationDidEnterBackgroundNotification object: nil]; 

viewDidLoad做这个。 类似于applicationDidBecomeActive

不要忘记在viewDidUnload以观察者身份移除自己。

应用程序委托是处理应用程序状态更改的正确位置,但仅仅因为这种情况,并不意味着您必须将由应用程序状态更改触发的所有逻辑都放在那里。

把逻辑放在它所属的地方。 如果是networking代码,那不在应用程序委托中,它不在视图控制器中,而是在一个单独的类中。 然后研究将应用程序的不同部分捆绑在一起的方法。 在大多数情况下,通知,KVO和共享实例模式是很好的方法。