Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用已编辑的内容填充UITableView中的单元格?_Ios_Objective C_Uitableview - Fatal编程技术网

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

Ios 如何使用已编辑的内容填充UITableView中的单元格?,ios,objective-c,uitableview,Ios,Objective C,Uitableview,也许我问得不恰当,因为我不确定怎么问,所以我会解释自己: 我有一个带有两个VC的简单notes应用程序: 表视图控制器-列出所有注释 视图控制器-创建新注释 在表vc中,我有一个unwindToList方法,该方法创建CreateNotes页面的实例,以获取将要传递的notes对象,如果不是nil,我将将其添加到notes数组并重新加载数据 - (IBAction) unwindToList: (UIStoryboardSegue *) segue { NMCreateNotesVie

也许我问得不恰当,因为我不确定怎么问,所以我会解释自己:

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

  • 表视图控制器-列出所有注释
  • 视图控制器-创建新注释
  • 在表vc中,我有一个unwindToList方法,该方法创建CreateNotes页面的实例,以获取将要传递的notes对象,如果不是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,当用户点击save按钮时,将其保存在该segue来自的同一单元格中…):

    在创建注释的视图控制器中,我有一个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编辑注释时,我用编辑的内容创建一个新注释,而不是用新编辑的内容填充SeguNote的同一单元格

    问题看起来是这样的:

    请帮我弄清楚这一点:/
    谢谢你

    我不太明白你的解释

    您有一个作为主视图控制器的表视图控制器和一个作为局部视图控制器的注释视图控制器

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

    在detail(notes)VC中定义一个委托属性,该属性将指向主节点

    在主机的PrepareForegue中,设置
    destination.delegate=self

    然后,为委托定义协议,详细视图控制器将使用该协议通知主控器列表项的内容已更改


    您可能需要告诉detail view控制器在master to detail segue中正在编辑的项的索引XPath,然后在展开到master之前,调用一个委托方法,将编辑的项提供给master,此外,它还具有indexPath功能,以便主控器可以保存更改并重新显示该单元格。

    我添加了一个屏幕截图,以直观方式将其显示给您。另外,我必须删除newNote代码,因为它没有按照我实现它的方式运行。相当混乱,使用断点调试它是查看错误的最简单方法。
    - (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;
    
        }
    }