iPhone master detail app如何使用详细视图来更改主视图中相应单元格中显示的文本值

时间:2013-10-17 18:06:09

标签: iphone ios uitableview

我是iOS编程的新手,我目前正在学校上课。对于我正在做的项目,我们必须为iPhone编写一个基本的主 - 详细应用程序。对于我的应用,我正在创建一个简单的待办事项列表类型的应用程序。每个任务的名称都显示在主视图中,任务名称可以在详细视图中更改。我设置了一个保存按钮,按下时会有一个展开segue委托。当我按下按钮时,我会回到主视图,我无法实时更改相应单元格的值。我知道主视图正在获取更改的信息,因为更改的信息不会被保存,直到控件转移回主视图并且它被保存。当我重新运行应用程序时,将显示新名称而不是默认名称。

这是unwind segue的代表

- (IBAction) done:(UIStoryboardSegue *)segue
{
// index for the cell in the master view table that was changed
NSIndexPath *changeIndex = [self.tableView indexPathForSelectedRow];

[self tableView:self.tableView cellForRowAtIndexPath:changeIndex];

// place the new dictionary entry created by the detail view in the location of the
// array where the old entry was located
_taskList[changeIndex.row] = self.ChangedEntry;

// store the change in the plist file
[_taskList writeToFile:self->documentPlistPath atomically:YES];
}

调用此函数,它似乎会更改表格中单元格的文本,但我不确定

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:  (NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.textLabel.text = _taskList[indexPath.row][TASK_DATA_NAME];
return cell;
}

所以是的,我只想弄清楚如何使主视图反映在详细视图中所做的更改,而无需关闭应用程序并重新打开它。哦,我正在使用Xcode 5并以iOS 7为目标。

1 个答案:

答案 0 :(得分:1)

基本上,在更新数据模型(_taskList)之后,需要通过调用表{1}}来刷新表视图。这告诉它更新所有行。