[英]How to reload VC1's tableView data in another VC2's `audioPlayerDidFinishPlaying()`
[英]How to save one VC's text field data to another VC's table view?
我的第一個視圖控制器中有一個tableView
,它在它們的行中解析了本地 JSON 數據。 另外,我的第二個視圖控制器中有一個UIViewController
,它有 6 個 textFields 和保存按鈕。 當在我的第二個視圖控制器中按下保存按鈕時,我想將 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 數據並在我的另一個CoreData
的 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.