如何实现UINavigationControllerDelegate为数据驱动的应用程序调用Web服务

时间:2012-02-05 18:19:42

标签: iphone uinavigationcontroller data-driven

在我的应用程序中,我有5个导航控制器。其中一个导航控制器显示共享相同数据的3个视图控制器(来自Sqlite数据库)。唯一的区别是他们以不同的方式呈现数据:

  • ViewController 1 =按国家/地区排序的食谱
  • ViewController 2 =按蔬菜排序的食谱
  • ViewController 1 =按葡萄酒分类的食谱

Sqlite数据库提供了一个Web服务。由于可以随时添加新配方,我需要在应用程序变为活动状态时随时刷新数据库。并且由于应用程序可以在任何视图控制器上激活(取决于应用程序进入后台时选择的那个),我必须在3个视图控制器实现文件中编写刷新代码。

我认为这种方法很糟糕,因为当用户在导航控制器之间切换时会调用Web服务。这会创建频繁且无用的流量和数据库更新。我更愿意每个应用程序使用一次(活动/后台)。我在考虑UINavigationControllerDelegate。这样,当应用程序变为活动状态时,无论导航控制器是什么,我都只进行一次刷新。

我的问题是:

  • 你认为这是一个好方法还是你会建议另一个?
  • 在这种情况下,您知道如何实现UINavigationControllerDelegate吗?
  • 这只能在App Delegate中使用,还是可以在外面进行?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你走在正确的轨道上。我认为你应该创建一个单独的类来进行刷新,你应该从你的appDelegate中调用该类

 applicationDidBecomeActive:

方法。它确实应该与导航控制器无关。