ios - 如何将一个 VC 的文本字段数据保存到另一个 VC 的表格视图中?
问题描述
我的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 文件数据混淆?
解决方案
只要您为表选择 1 个数据的真实来源(文件管理器或核心数据),他们就不会感到困惑。但是如果你的本地数据库和它里面的对象关系不复杂,那么 FileManager 就足够了。按下保存按钮后,似乎第一个视图控制器出现在屏幕上,就像后退按钮机制。您可以通过在viewWillAppear中从文件管理器加载数据并在viewWillAppear中调用tableView.reloadData来使用简单的方法,但是如果不在viewDidLoad中加载数据和填充tableView,则不是那么合适的方法,因此您可以使用NotificationCenter通知第一个视图控制器如果数据有变化重新加载tableView的数据
编辑:您可以找到更多选项在视图控制器之间传递数据,尤其是在此处使用通知中心https://learnappmaking.com/pass-data-between-view-controllers-swift-how-to/#nsnotificationcenter
推荐阅读
- c - (f)printf 强制显示零数字
- c# - “您输入的帐户名或密码不正确” Steam Api 错误
- swift - Firestore Firebase 通过 documentID 快速进行查询
- python - 用 pysftp 连接 FTP 服务器
- sql - 是否可以在sql中搜索两个未链接的不同表?
- node.js - 如何让 puppeteer 浏览器在后台运行而不跳转到前台?
- javascript - 调用js方法onClick失败
- mongodb - 使用 Node.js 和 Mongodb 构建 Restful CRUD API
- oauth-2.0 - 如何创建 OAuth 2.0 永久访问令牌
- java - 无效的 Firebase 数据库路径 Android