在我的应用程序中,我有 5 个导航控制器。其中一个导航控制器显示 3 个视图控制器共享相同的数据(来自 Sqlite 数据库)。唯一的区别是它们以不同的方式呈现数据:
- ViewController 1 = 按国家/地区排序的食谱
- ViewController 2 = 按蔬菜分类的食谱
- ViewController 1 = 按葡萄酒排序的食谱
Sqlite 数据库由 Web 服务提供。由于可以随时添加新食谱,因此我需要在应用程序激活时刷新数据库。由于应用程序可以在任何视图控制器上激活(取决于应用程序进入后台时选择的那个),我必须在 3 个视图控制器实现文件中编写刷新代码。
我认为这种方法很糟糕,因为当用户在导航控制器之间切换时会调用 Web 服务。这会创建频繁且无用的流量和数据库更新。我宁愿每次应用程序使用(活动/后台)只做一次这项工作。我在想 UINavigationControllerDelegate。这样,当应用程序变为活动状态时,无论导航控制器是什么,我都会只进行一次刷新。
我的问题是:
- 你认为这是一个好方法还是你会建议另一个?
- 你知道在这种情况下如何实现 UINavigationControllerDelegate 吗?
- 这只能在 App Delegate 中进行还是我可以在外面进行?
提前感谢您的帮助。