Core data 3个UIViewController中的核心数据

Core data 3个UIViewController中的核心数据,core-data,uiviewcontroller,Core Data,Uiviewcontroller,这听起来像是一个新手问题,但我有几个应用程序,我被困在同一个概念。我有3个UIViewControllers: 第一个是根控制器,它是UITableView(在另一个 应用程序(a集合视图) 第二个是普通UIViewController,显示根控制器中所选项目的详细信息 第三个是编辑控制器,我想在其中编辑此对象的内容,为此我重用了用于添加新对象的相同AddViewController 虽然当我从编辑控制器返回到细节1时,细节仍然显示旧数据,但节省的数据没有错误。在我再次返回根目录之前,它不会

这听起来像是一个新手问题,但我有几个应用程序,我被困在同一个概念。我有3个
UIViewController
s:

  • 第一个是根控制器,它是
    UITableView
    (在另一个 应用程序(a集合视图)
  • 第二个是普通
    UIViewController
    ,显示根控制器中所选项目的详细信息
  • 第三个是编辑控制器,我想在其中编辑此对象的内容,为此我重用了用于添加新对象的相同
    AddViewController
虽然当我从编辑控制器返回到细节1时,细节仍然显示旧数据,但节省的数据没有错误。在我再次返回根目录之前,它不会更新数据

我需要找到一种方法,以便在我从“编辑”视图返回时更新“详细信息”视图中的数据。这个问题困扰着我目前正在处理的许多应用程序


任何解决方案都将不胜感激

实现目标的最简单方法是:在编辑控制器中,您需要对详细控制器说“亲爱的详细控制器,我刚刚更新了内容,请刷新!”

怎么做?设置委托或通知(在这两种情况下,详细信息控制器将响应或侦听您的编辑控制器),然后对您感兴趣的数据执行新的请求并更新界面

另外,我认为细节控制器不会更新,因为您已经在其
viewDidLoad
中执行了请求。我错了吗?如果您提供一些代码,我们可以帮助您


希望有帮助

下面是根目录中didselectrow的代码

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    DetailnewViewController *detailViewController = [[DetailnewViewController alloc] initWithNibName:@"DetailnewViewController" bundle:nil];
    Card *selectedItem = (Card *)[[self fetchedResultsController] objectAtIndexPath:indexPath];
    detailViewController.itcard = selectedItem;
    detailViewController.managedObjectContext=self.managedObjectContext;
    detailViewController.view.backgroundColor=[UIColor orangeColor];
    [self.navigationController pushViewController:detailViewController animated:YES];
    [detailViewController release];
    [selectedItem release];


}
下面是Detailnewviewcontroller的代码&你说得对,我正在viewdidload中执行请求

- (void)viewDidLoad
{
    cardnumberlabel.text=itcard.CardNumber;
    namelabel.text=itcard.Name;
    phonelabel.text=itcard.phonenumber;
    websitelabel.text=itcard.site;
}

感谢您的回复,我将尝试访问视图c的代理。好吧,我的问题在于执行数据的新请求,如何做到这一点?解决了!答案是ViewwillApear,谢谢:)