【问题标题】:How to save one VC's text field data to another VC's table view?如何将一个 VC 的文本字段数据保存到另一个 VC 的表格视图中?
【发布时间】:2020-06-11 02:58:06
【问题描述】:

我在我的第一个视图控制器中有一个tableView,它已在其行中解析了本地 JSON 数据。此外,我的第二个视图控制器中有一个UIViewController,它有 6 个文本字段和保存按钮。当在我的第二个视图控制器中按下保存按钮时,我想将 textFields 数据保存到我的第一个视图控制器的 tableView 中。如何保存此文本字段数据以显示在我的 tableView 中?

我尝试将文本字段数据写入我的本地 json 文件,如下所示:

func writeToJSON() {
    let foo = Member(name: "Emre", age: 25, location: "Izmir", github: "emrdgrmnci", company: CompanyClass(position: "Software", years: 0))
    do {
        let data = try JSONSerialization.data(withJSONObject: foo, options: [])
        if let documentDirectoryUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
            let fileUrl = documentDirectoryUrl.appendingPathComponent("company.json")
            try data.write(to: fileUrl)
        }
    } catch {
        print(error)
    }
}

如果我使用 CoreData 保存我的 textfileds 数据并显示在我的另一个视图控制器的 tableView 行中会怎样。它们是否与我在 tableview 中的本地 json 文件数据混淆?

【问题讨论】:

  • 您必须将本地 json 文件读入 coredata,然后将 coredata 中的数据显示到 tableview 中。然后将列表传递给您拥有文本字段的第二个 vc。使用传递的数据填充文本字段。当单击保存时,您必须将更改保存/更新到 coredata。当你回到第一个 vc 时,重新加载数据,以便它再次从 coredata 读取数据以更新 tableview 数据
  • 实际上,当单击具有 6 个文本字段的视图控制器上的保存按钮时,我正在向表视图添加新成员。您是否有任何将 json 数据保存到核心数据的示例链接。首先,我应该将我的 json 数据保存到核心数据中,然后从核心数据中读取以填充我的表格视图。最后,还要将文本字段数据保存到我的核心数据中并显示在表格视图中,对吧?
  • 是的。并且在搜索解析json并对coredata做crud操作时会得到多个来源
  • 有很多方法,您可以使用delegatesNotificationCenterCoreDatasingleton 类来满足您的要求

标签: ios json swift uitableview core-data


【解决方案1】:

只要您为表选择 1 个数据的真实来源(文件管理器或核心数据),他们就不会感到困惑。但是如果你的本地数据库和它里面的对象关系不复杂,那么 FileManager 就足够了。按下保存按钮后,似乎第一个视图控制器出现在屏幕上,就像后退按钮机制。您可以通过在viewWillAppear中从文件管理器加载数据并在viewWillAppear中调用tableView.reloadData来使用简单的方法,但是如果不在viewDidLoad中加载数据和填充tableView,则不是那么合适的方法,因此您可以使用NotificationCenter通知第一个视图控制器如果数据有变化重新加载tableView的数据

编辑: 您可以找到更多在视图控制器之间传递数据的选项,尤其是在此处使用通知中心https://learnappmaking.com/pass-data-between-view-controllers-swift-how-to/#nsnotificationcenter

【讨论】:

  • 如果你用代码示例解释我会接受你的回答。我不写代码结构。非常感谢
猜你喜欢
  • 2020-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-18
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多