排序一个简单的问题的。我有一个navigationcontroller一个实现代码如下。当我触摸的小区时,它推动与来自小区中的信息的图控制器,所以可在新视图编辑。现在,多数民众赞成在工作正确的是(我们可以称之为informationpath:“RootViewController的 - >推视图 - 控制”)。但是,当我点击保存新的看法,我希望编辑的值旅行回RootViewController的之前,我打电话popviewcontroller(informationpath:“推视图 - 控制 - > RootViewController的”),所以编辑值可以在tableview中显示。

请告诉我正确的方法本?

编辑:

和pushViewController是popViewController工作。我只问,最好的办法来获得在tableview中编辑的信息反馈到RootViewController的显示,当保存按钮(popViewController)被调用。我想我就必须编辑plist出现从推的viewController直接的新信息。虽然我更愿意发送新信息到RootViewController的,并把它处理访问的plist文件。

有帮助吗?

解决方案

我也有同样的情况 - 2个tableviews。第一个电视显示器的数据库记录的列表,并在一个被窃听它通过对显示着记录的细节第二的TableView。我推的细节TableViewController到导航控制器堆栈做到这一点。到目前为止去,很简单。

遇到的问题,我是更新的详细信息表视图(控制器)纪录后,我想让名单表视图控制器知道,所以它可以更新的记录列表。

我做的第一件事是将属性添加到详细信息表视图控制器,以便当记录列表上选择一排,列表控制器可以通过管理实体的细节控制器的核心数据。

同时,我还添加列表控制器作为核心数据改变事件的像这样的观察者:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dataSaved:) name:NSManagedObjectContextDidSaveNotification object:nil];

因此,如果细节表视图和控制器更新该记录中,列表控制器已经把它称为的dataSaved:方法,传递一个NSNotification对象。

dataSaved:方法我检查对象,并且如果正在编辑的核心数据实体是在更新的列表中,则我设置一个标志需要更新的信号。然而,如果没有在列表中插入一条记录,这意味着一个新的记录已创建并插入到数据库中,这样一个标志设置触发清单表视图的完全重新加载。

当用户返回到列表视图控制器,则触发viewDidAppear:方法。在该方法我检查标志和任一呼叫

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

重新加载特定的记录,如果记录被更新,或者告诉表视图做全部重新加载,如果有一个新的记录的插入。

最后,我然后取下列表控制器作为核心数据通知的观察者,因为它不再感兴趣。

我不知道这是要做到这一点是推荐的方式,但到目前为止,它的工作对我来说。

其他提示

您可以尝试reloadData popViewController之前,但你应该张贴一些代码。

所有UIViewControllers具有navigationController方法。当按下一个视图控制器导航控制器,该属性被设置为指向导航控制器。

所以,只需要调用[self.navigationController popViewControllerAnimated:YES];在视图控制器。

此外,不要混淆视图和视图控制器。当您单击保存在视图中,你应该确保保存按钮您的视图控制器,这反过来会谈导航控制器。

在调用一个方法

在攻一排你要适当的信息,新的看法。

下面你执行一些操作,例如编辑数据。 所以,先救上保存按钮(通过调用一个IBAction为),并在这个IBAction为方法将检查wheter(成功保存修改)上点击修改,然后调用

[self.navigationController popViewControllerAnimated:YES];

和确保表重载本身由更新databese(用于数据的这种变化阵列通过调用viewWillAppear中方法数据库法)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top