如何使用已编辑的内容填充UITableView中的单元格?

时间:2014-04-05 11:12:11

标签: ios objective-c uitableview

也许我没有正确地问它,因为我不确定如何,所以我会解释自己:

我有一个带有两个VC的简单笔记应用程序:

  1. 表格视图控制器 - 列出所有笔记。
  2. 查看控制器 - 创建新笔记。
  3. 在表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的相同单元格...

    这就是问题的样子:

    enter image description here

    请帮我解决这个问题:/ 欣赏它!

1 个答案:

答案 0 :(得分:0)

我不太明白你的解释。

您有一个表视图控制器,它是一个主视图控制器和一个注释视图控制器,它是一个详细视图控制器。

处理从详细视图控制器到其主控的通信的常用方法是设置委托。

在详细信息(注释)VC中定义委托属性,该VC将指向主服务器。

在主人的prepareForSegue中,设置destination.delegate = self

然后,为委托定义一个协议,详细视图控制器将使用该协议告诉主节点列表项的内容已更改。

您可能需要告诉详细视图控制器在主对细节segue中编辑的项目的indexPath,然后在展开到master之前,调用一个委托方法给出编辑项目到主服务器,以及它的indexPath,以便主服务器可以保存更改并重新显示该单元格。