也许我没有正确地问它,因为我不确定如何,所以我会解释自己:
我有一个带有两个VC的简单笔记应用程序:
在表vc中我有一个unwindToList方法,它创建一个创建注释页面的实例来获取将被传递的注释对象,如果它不是nil,我将它添加到notes数组并重新加载数据;
- (IBAction) unwindToList: (UIStoryboardSegue *) segue
{
NMCreateNotesViewController *source = [segue sourceViewController];
NMNote *note = source.note;
if (note != nil) {
[self.notes addObject:note];
[self.tableView reloadData];
}
}
和一个prepareForSegue方法,它将识别这个segue是否是一个音符segue(这是我想在创建音符页面中进行预编辑的segue,当用户点击保存按钮时,将它保存在同一个单元格中segue来自...):
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(UITableViewCell *)sender
{
if ([[segue identifier] isEqualToString:@"noteSegue"]) {
NMCreateNotesViewController *destination = [segue destinationViewController];
NSInteger indx = [self.tableView indexPathForCell:sender].row;
NMNote *note = self.notes[indx];
destination.passedInString = note.content;
}
}
在创建笔记的视图控制器中,我有一个prepareForSegue方法,如下所示:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if (sender != self.saveButton) return;
if (self.textField.text.length > 0) {
self.note = [[NMNote alloc] init];
self.note.content = self.textField.text;
}
}
现在,我的问题是,当我正在编辑noteSegue中的注释时,我正在使用已编辑的内容创建新注释,而不是使用新编辑的内容填充segueNote的相同单元格...
这就是问题的样子:
请帮我解决这个问题:/ 欣赏它!
答案 0 :(得分:0)
我不太明白你的解释。
您有一个表视图控制器,它是一个主视图控制器和一个注释视图控制器,它是一个详细视图控制器。
处理从详细视图控制器到其主控的通信的常用方法是设置委托。
在详细信息(注释)VC中定义委托属性,该VC将指向主服务器。
在主人的prepareForSegue中,设置destination.delegate = self
。
然后,为委托定义一个协议,详细视图控制器将使用该协议告诉主节点列表项的内容已更改。
您可能需要告诉详细视图控制器在主对细节segue中编辑的项目的indexPath,然后在展开到master之前,调用一个委托方法给出编辑项目到主服务器,以及它的indexPath,以便主服务器可以保存更改并重新显示该单元格。