0

这听起来像一个新手问题,但我有几个应用程序我坚持相同的概念。我有 3UIViewController秒:

  • 第一个是根控制器UITableView(在另一个应用程序中是集合视图)
  • 第二个是正常UIViewController的,在根控制器中显示所选项目的详细信息
  • 第三个是编辑控制器,我想在其中编辑这个对象的内容,为此我重用了AddViewController我用来添加新对象的相同。

虽然,当我从 Edit Controller 返回到 Detail one 时,节省的费用很好,但 Detail 仍然显示旧数据。在我再次返回根目录之前,它不会更新数据。

我需要找到一种方法,以便在我从编辑视图热回时更新详细信息视图中的数据。这个问题在我现在正在处理的许多应用程序中都很麻烦。

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

4

2 回答 2

1

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

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

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

希望有帮助。

于 2012-10-08T20:28:07.407 回答
0

好吧,这是根目录中 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

于 2012-10-09T08:05:45.497 回答