我是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为目标。
答案 0 :(得分:1)
基本上,在更新数据模型(_taskList
)之后,需要通过调用表{1}}来刷新表视图。这告诉它更新所有行。