首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有核心数据的主细节应用程序

具有核心数据的主细节应用程序
EN

Stack Overflow用户
提问于 2012-01-08 16:47:07
回答 1查看 797关注 0票数 0

从带有核心数据的Xcode 4.2主细节模板(用于iPad)中,我修改了数据模型,并向nib文件中添加了额外的文本视图对象。

用于将数据从托管对象移动到接口对象的代码是在ConfigureView中的DetailViewController中的,它工作得很好。

现在,当我在弹出器中从一个项移到另一个项时,我正在尝试将接口对象数据自动保存到托管对象数据。

我在viewWillDisappear中添加了在DetailViewController中保存的代码,但这似乎没有触发。我是不是遗漏了什么?

代码语言:javascript
复制
- (void)configureView { // Update the user interface for the detail item.
  if (self.detailItem) {
    self.sname.text = [self.detailItem valueForKey:@"sname"];
    self.saddress.text = [self.detailItem valueForKey:@"saddress"];
  }
}


- (void)viewWillDisappear:(BOOL)animated {
  [self.detailItem setValue: self.sname.text forKey:@"sname"];
  [self.detailItem setValue: self.saddress.text forKey:@"saddress"];

  NSError *error; if (![self.detailItem.managedObjectContext save:&error]) {
    NSLog(@"Unresolved error %@, %@",error,[error userInfo]);
    exit(-1); //fail
  }

  [super viewWillDisappear:animated];
}
EN

回答 1

Stack Overflow用户

发布于 2012-01-08 16:58:16

首先,在MasterDetail应用程序中,detailViewController通常是可见的,而不是消失的。这就是为什么没有调用viewWillDisappear的原因。当然,我不确定你的应用架构的细节,所以我可能是错的。

其次,如果用户更改了一些数据,然后切换到另一个应用程序,则考虑用例。然后,在另一个应用程序中,系统终止您的应用程序。您的用户所做的更改将丢失,并将与他们期望的操作背道而驰。

除非您在detailViewController中为接口保存了大量数据,否则请考虑在用户更改接口中的数据之后,而不是在用户从managedObject切换到popoverViewController中的managedObject时,保存数据。例如,当用户编辑textView或textfield中的某些数据时,对managedObjectContext执行保存。

祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8779289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档