我将从这里开始坦白......我是Objective-C& amp;的新手iPhone编程(2月份开始学习,3月份开始编写),我有一个非常雄心勃勃的项目,以及这种经验水平。一个非常紧迫的截止日期,以抓住机会让我的应用程序进行现场试用。
我的应用是核心数据驱动&在首次运行时下载所有数据,这是一个选择,因为它将用于3G网络访问可能不可靠的站点。我希望在发生这种情况时提出一个模态视图,没有任何花哨只需要解释一些文本,一个进度条或活动指示器,一个漂亮的图形&作业完成后,按钮变为可见。我尝试了几种方法&惨淡失败所以除了XIB之外,没有任何代码可以被删除。
目前我正在applicationDidFinishLaunching中运行此代码...
[self checkDataAndLoadIfNeeded];
[window addSubview:rootController.view];
[window makeKeyAndVisible];
rootController是一个带有嵌套NavigationControllers的TabBarController。 checkDataAndLoadIfNeeded是一种检查正在加载的数据的默认值的方法。如果不是,则显示警报。用于解除警报的委托方法然后是自定义类DataLoader,该类用于下载&导入数据。
正在发生的事情是rootController视图在警报发生之前变得可见。第一个选项卡上的表在下次运行应用程序之前不会加载任何数据。我想知道这个数据是否加载是因为我在viewDidLoad&我是否会在viewWillAppear或viewDidAppear中做得更好。当我尝试加载模态视图时,我已经构建了我的rootController视图,仍然可以看到第一个&在数据完成(或差不多完成)下载之前,我的模态视图才可见(完成按钮立即可见)。
有人可以就如何使这项工作提出建议吗?
干杯& TIA,佩德罗:)
答案 0 :(得分:1)
听起来你的rootController没有注意数据的变化。如果元素已经显示或者数据首先加载,则无关紧要。如果稍后加载数据,则UI元素应注意到数据已更新,然后自行刷新。
根据您的应用程序设计,您应该查看NSFetchedResultsController
类并将其与其委托方法一起实现。此类旨在观察NSManagedObjectContext
的更改以及何时将数据保存到磁盘,使用已更改的内容更新其委托。